55template<
typename Enum>
61template<
typename Enum>
63 { enum_traits<Enum>::values } -> std::convertible_to<
64 std::span<const std::pair<Enum, std::string_view>>>;
65 { enum_traits<Enum>::module_name } -> std::convertible_to<std::string_view>;
75template<EnumSerializable Enum>
79 return std::string(s);
92template<EnumSerializable Enum>
95 std::string upper(str.size(),
'\0');
96 std::transform(str.begin(), str.end(), upper.begin(),
97 [](
unsigned char c) { return static_cast<char>(std::toupper(c)); });
106 error_info{1,
"Invalid enum value: " + std::string(str),
Result type for error handling with member function support.
static Result< T > err(const error_info &error)
Create an error result from error_info (static factory)
static Result< T > ok(U &&value)
Create a successful result with value (static factory)
Concept to check if an enum has valid traits defined.
Result< Enum > enum_from_string(std::string_view str)
Convert a string to its enum value (case-insensitive)
std::string enum_to_string(Enum value)
Convert an enum value to its string representation.
Umbrella header for Result<T> type and related utilities.
Primary template for enum traits (must be specialized for each enum)
Standard error information used by Result<T>.