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.cppm10
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