diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2026-06-20 10:25:09 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2026-06-20 10:28:48 +0200 |
| commit | a4b92ca698770dc64639e51c76edb5dee16d2792 (patch) | |
| tree | 68f2dd6d99f50f5dd5d875703a1999863e9a650a /ttwhy/scanners/concepts.cppm | |
| parent | c5f8cd91186adbe9c68835675a019449cc275c6d (diff) | |
| download | ttwhy-a4b92ca698770dc64639e51c76edb5dee16d2792.tar.xz ttwhy-a4b92ca698770dc64639e51c76edb5dee16d2792.zip | |
lib: switch to policy based scanner design
Diffstat (limited to 'ttwhy/scanners/concepts.cppm')
| -rw-r--r-- | ttwhy/scanners/concepts.cppm | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ttwhy/scanners/concepts.cppm b/ttwhy/scanners/concepts.cppm index 003874c..8db3ae6 100644 --- a/ttwhy/scanners/concepts.cppm +++ b/ttwhy/scanners/concepts.cppm @@ -2,9 +2,12 @@ module; #include <concepts> #include <span> +#include <string> export module ttwhy.scanners:concepts; +import :events; + namespace ttwhy { @@ -15,4 +18,11 @@ 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>; + }; + } // namespace ttwhy |
