aboutsummaryrefslogtreecommitdiff
path: root/ttwhy/scanners/concepts.cppm
diff options
context:
space:
mode:
Diffstat (limited to 'ttwhy/scanners/concepts.cppm')
-rw-r--r--ttwhy/scanners/concepts.cppm13
1 files changed, 8 insertions, 5 deletions
diff --git a/ttwhy/scanners/concepts.cppm b/ttwhy/scanners/concepts.cppm
index 69d6459..5c29b5f 100644
--- a/ttwhy/scanners/concepts.cppm
+++ b/ttwhy/scanners/concepts.cppm
@@ -17,11 +17,14 @@ namespace ttwhy
{ a.is_pending() } -> std::same_as<bool>;
};
- export template<typename Sink>
- concept ansi_sink = requires(Sink sink) {
- { sink(std::declval<ttwhy::scanners::character_event>()) } -> std::same_as<void>;
- { sink(std::declval<ttwhy::scanners::control_event>()) } -> std::same_as<void>;
- { sink(std::declval<ttwhy::scanners::navigation_event>()) } -> std::same_as<void>;
+ export template<typename Sink, typename Event>
+ concept event_sink = requires(Sink sink, Event event) {
+ { sink(event) } -> std::same_as<void>;
};
+ export template<typename Sink>
+ concept terminal_event_sink =
+ event_sink<Sink, scanners::character_event> && event_sink<Sink, scanners::control_event> &&
+ event_sink<Sink, scanners::navigation_event>;
+
} // namespace ttwhy