#pragma once #include #include #include #include #include namespace web { struct ConnectionBase; /** * @brief Specifies the requirements a Webserver handler must fulfill. */ template concept SomeServerHandler = requires( T handler, std::string req, std::shared_ptr ws, boost::beast::error_code ec ) { // the callback when server receives a request { handler(req, ws) }; }; /** * @brief A tag class for server to help identify Server in templated code. */ struct ServerTag { virtual ~ServerTag() = default; }; template concept SomeServer = std::derived_from; } // namespace web