25#include "../json_compat.hpp"
26#include "../meta/literal_string.hpp"
27#include "common_types.hpp"
34namespace essence::net {
35 enum class http_method {
46 { rest_message_traits<T>::method } -> std::convertible_to<http_method>;
47 { rest_message_traits<T>::relative_uri } -> std::convertible_to<std::string_view>;
48 requires std::default_initializable<T>;
50 requires std::derived_from<T, dummy_body_tag>;
51 typename rest_message_traits<T>::response_type;
59 std::is_invocable_r_v<
json,
decltype(rest_message_traits<T>::message_transformer),
const T&>;
66 { std::invoke(rest_message_traits<T>::response_transformer, response) } ->
json_serializable;
69 template <has_rest_message_transformer T>
74 template <has_rest_message_transformer T>
77 template <has_rest_response_transformer T>
82 template <has_rest_response_transformer T>
85 template <http_method Method, meta::literal_
string RelativeUri,
typename ResponseType>
87 using response_type = ResponseType;
89 static constexpr http_method method{Method};
90 static constexpr std::string_view relative_uri{RelativeUri};
93 constexpr std::string_view to_string(http_method method)
noexcept {
95 case http_method::put:
97 case http_method::post:
99 case http_method::get:
namespace for Niels Lohmann
Definition json.hpp:19415
Definition json_compat.hpp:43
Definition rest_api.hpp:45
Definition rest_api.hpp:86
Definition rest_api.hpp:42