diff options
Diffstat (limited to 'ttwhy/scanners/concepts.cppm')
| -rw-r--r-- | ttwhy/scanners/concepts.cppm | 13 |
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 |
