#include #include #include #include #include #include #include auto sonus::detail::make_error(std::int32_t code, std::string message, modulus::source_location location) -> modulus::error { return modulus::make_error("sonus", code, std::move(message), location); } auto sonus::detail::fail_void(modulus::error error) -> std::expected { return std::unexpected(std::move(error)); } auto sonus::detail::fail_void(std::int32_t code, std::string message, modulus::source_location location) -> std::expected { return sonus::detail::fail_void(sonus::detail::make_error(code, std::move(message), location)); } auto sonus::detail::fail_void(std::expected const& result) -> std::expected { assert(!result); return sonus::detail::fail_void(result.error()); }