module; #include #include #include export module routemon:problem; import std; import :locale; namespace http = boost::beast::http; namespace json = boost::json; namespace routemon::problem { export struct details { http::status status; blocale::message title; std::string_view type_uri; std::optional detail = std::nullopt; std::optional instance = std::nullopt; auto set_detail(blocale::message detail) -> details&; auto set_instance(std::string&& instance) -> details&; auto set_instance(std::string_view instance) -> details&; }; auto tag_invoke( json::value_from_tag, json::value& jv, details const& details, std::locale locale) -> void; export struct tpl { http::status status; blocale::message title; std::string_view type_uri; auto instantiate() const -> details; }; } // namespace routemon::problem