aboutsummaryrefslogtreecommitdiff
path: root/ttwhy/routers/concepts.cppm
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-09-22 17:01:36 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-09-22 17:01:36 +0200
commita63e7d65293c07e0567cfdafbce693a543bf2a0d (patch)
treef84fdb59e035a13fa1c83dce86a7ae719945891c /ttwhy/routers/concepts.cppm
parent375d010e91cdbca6fd575a8e060485a7418fab18 (diff)
downloadttwhy-a63e7d65293c07e0567cfdafbce693a543bf2a0d.tar.xz
ttwhy-a63e7d65293c07e0567cfdafbce693a543bf2a0d.zip
lib: rename concept module files
Diffstat (limited to 'ttwhy/routers/concepts.cppm')
-rw-r--r--ttwhy/routers/concepts.cppm20
1 files changed, 20 insertions, 0 deletions
diff --git a/ttwhy/routers/concepts.cppm b/ttwhy/routers/concepts.cppm
new file mode 100644
index 0000000..9660afc
--- /dev/null
+++ b/ttwhy/routers/concepts.cppm
@@ -0,0 +1,20 @@
+module;
+
+#include <asio.hpp>
+
+#include <concepts>
+
+export module ttwhy.routers:concepts;
+
+import ttwhy.scanners;
+
+namespace ttwhy
+{
+
+ export template<typename Candidate>
+ concept router = requires(Candidate candidate, scanners::input_event event) {
+ typename Candidate::terminal_policy;
+ { candidate.process(event) } -> std::same_as<asio::awaitable<void>>;
+ };
+
+} // namespace ttwhy