aboutsummaryrefslogtreecommitdiff
path: root/ttwhy/routers
diff options
context:
space:
mode:
Diffstat (limited to 'ttwhy/routers')
-rw-r--r--ttwhy/routers/concepts.cppm7
-rw-r--r--ttwhy/routers/echo.cppm2
-rw-r--r--ttwhy/routers/echo.tests.cpp20
3 files changed, 11 insertions, 18 deletions
diff --git a/ttwhy/routers/concepts.cppm b/ttwhy/routers/concepts.cppm
index 9660afc..cfbcb5a 100644
--- a/ttwhy/routers/concepts.cppm
+++ b/ttwhy/routers/concepts.cppm
@@ -6,14 +6,11 @@ module;
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;
+ export template<typename Candidate, typename Event>
+ concept router = requires(Candidate candidate, Event event) {
{ candidate.process(event) } -> std::same_as<asio::awaitable<void>>;
};
diff --git a/ttwhy/routers/echo.cppm b/ttwhy/routers/echo.cppm
index ff309c8..c9cd7c7 100644
--- a/ttwhy/routers/echo.cppm
+++ b/ttwhy/routers/echo.cppm
@@ -29,8 +29,6 @@ namespace ttwhy::routers
export template<typename StreamType>
struct echo
{
- using terminal_policy = scanners::xterm_policy;
-
explicit echo(StreamType & stream)
: m_output_stream{stream}
{}
diff --git a/ttwhy/routers/echo.tests.cpp b/ttwhy/routers/echo.tests.cpp
index c6ea10a..da2db40 100644
--- a/ttwhy/routers/echo.tests.cpp
+++ b/ttwhy/routers/echo.tests.cpp
@@ -46,29 +46,27 @@ namespace
}
};
- struct incomplete_router_no_policy
- {
- auto process(ttwhy::scanners::input_event) -> asio::awaitable<void>;
- };
-
struct incomplete_router_no_process
{
- using terminal_policy = ttwhy::scanners::xterm_policy;
};
struct incomplete_router_wrong_return
{
- using terminal_policy = ttwhy::scanners::xterm_policy;
auto process(ttwhy::scanners::input_event) -> void;
};
+
+ struct incomplete_router_wrong_event
+ {
+ auto process(int) -> asio::awaitable<void>;
+ };
} // namespace
TEST_CASE("The router concept validates router candidate interfaces", "[router][concept]")
{
- STATIC_REQUIRE(ttwhy::router<ttwhy::routers::echo<mock_stream>>);
- STATIC_REQUIRE_FALSE(ttwhy::router<incomplete_router_no_policy>);
- STATIC_REQUIRE_FALSE(ttwhy::router<incomplete_router_no_process>);
- STATIC_REQUIRE_FALSE(ttwhy::router<incomplete_router_wrong_return>);
+ STATIC_REQUIRE(ttwhy::router<ttwhy::routers::echo<mock_stream>, ttwhy::scanners::input_event>);
+ STATIC_REQUIRE_FALSE(ttwhy::router<incomplete_router_no_process, ttwhy::scanners::input_event>);
+ STATIC_REQUIRE_FALSE(ttwhy::router<incomplete_router_wrong_return, ttwhy::scanners::input_event>);
+ STATIC_REQUIRE_FALSE(ttwhy::router<incomplete_router_wrong_event, ttwhy::scanners::input_event>);
}
SCENARIO("The echo router handles terminal navigation within the valid printed area", "[router][echo]")