aboutsummaryrefslogtreecommitdiff
path: root/ttwhy/routers/concepts.cppm
blob: 9660afc1285c94cac9729034f2b0651bd2f5e6e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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