module; #include #include #include export module ttwhy.scanners:concepts; import :events; namespace ttwhy { export template concept scanner = requires(Candidate a, std::span buffer) { { a.process(buffer) } -> std::same_as; { a.timeout() } -> std::same_as; { a.is_pending() } -> std::same_as; }; export template concept ansi_sink = requires(Sink sink) { { sink(std::declval()) } -> std::same_as; { sink(std::declval()) } -> std::same_as; { sink(std::declval()) } -> std::same_as; }; } // namespace ttwhy