From 52b3cd46c76fd4be18aeb8422a08a073484b9fad Mon Sep 17 00:00:00 2001 From: Rutger Broekhoff Date: Sat, 29 Aug 2026 12:01:42 +0200 Subject: More module implementation partition units --- server/src/problem.cppm | 40 ++++++---------------------------------- 1 file changed, 6 insertions(+), 34 deletions(-) (limited to 'server/src/problem.cppm') diff --git a/server/src/problem.cppm b/server/src/problem.cppm index 37e6257..18c2fe2 100644 --- a/server/src/problem.cppm +++ b/server/src/problem.cppm @@ -22,39 +22,14 @@ export struct details std::optional detail = std::nullopt; std::optional instance = std::nullopt; - auto set_detail(blocale::message detail) -> details& - { - this->detail = detail; - return *this; - } - - auto set_instance(std::string&& instance) -> details& - { - this->instance = instance; - return *this; - } - auto set_instance(std::string_view instance) -> details& - { - this->instance = std::string{instance}; - return *this; - } + auto set_detail(blocale::message detail) -> details&; + auto set_instance(std::string&& instance) -> details&; + auto set_instance(std::string_view instance) -> details&; }; -export auto tag_invoke( +auto tag_invoke( json::value_from_tag, json::value& jv, details const& details, - std::locale locale) -> void -{ - auto obj = json::object{ - {"type", details.type_uri}, - {"title", details.title.str(locale)}, - {"status", static_cast(details.status)}, - }; - if (details.detail) - obj["detail"] = details.detail->str(locale); - if (details.instance) - obj["instance"] = *details.instance; - jv = obj; -} + std::locale locale) -> void; export struct tpl { @@ -62,10 +37,7 @@ export struct tpl blocale::message title; std::string_view type_uri; - auto instantiate() const -> details - { - return details{status, title, type_uri}; - } + auto instantiate() const -> details; }; } // namespace routemon::problem -- cgit v1.3