|
tagval 0.2.0
Modern C++23 header-only library of tagged values (open/closed enumerations with metadata)
|
CRTP handle. More...
#include <base.hpp>
Inheritance diagram for tagval::detail::HandleBase< Id, Derived >:
Collaboration diagram for tagval::detail::HandleBase< Id, Derived >:Public Member Functions | |
| constexpr | HandleBase () noexcept=default |
| Default-constructed handle: empty(), bool() == false. | |
| std::string_view | code () const noexcept |
| std::string_view | label () const noexcept |
| std::optional< comms::Icon > | icon () const noexcept |
| std::optional< comms::Color > | color () const noexcept |
| bool | empty () const noexcept |
| operator bool () const noexcept | |
Static Public Member Functions | |
| static constexpr std::string_view | kind_id () noexcept |
| static constexpr TagValDescriptor | descriptor () noexcept |
Protected Member Functions | |
| constexpr | HandleBase (const TagValMetadata *m) noexcept |
Static Protected Member Functions | |
| static Derived | make_handle (const TagValMetadata *m) noexcept |
| Build a Derived handle from a stable metadata pointer. | |
| static const TagValMetadata * | find_in (const std::span< const TagValMetadata > values, const std::string_view code) noexcept |
| Linear search a metadata range by code. | |
| static Derived | of_impl (const std::span< const TagValMetadata > values, const std::string_view code) |
| static std::expected< Derived, ParseError > | try_of_impl (const std::span< const TagValMetadata > values, const std::string_view code) noexcept |
Protected Attributes | |
| const TagValMetadata * | meta_ = nullptr |
Friends | |
| constexpr bool | operator== (const HandleBase &a, const HandleBase &b) noexcept |
| constexpr std::strong_ordering | operator<=> (const HandleBase &a, const HandleBase &b) noexcept |
CRTP handle.
Both ClosedEnded and OpenEnded derive from this; the concrete user type then derives from one of those.
|
constexprdefaultnoexcept |
|
inlineexplicitconstexprprotectednoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlineexplicitnoexcept |
|
inlinestaticconstexprnoexcept |
|
inlinestaticconstexprnoexcept |
|
inlinestaticprotectednoexcept |
Build a Derived handle from a stable metadata pointer.
|
inlinestaticprotectednoexcept |
Linear search a metadata range by code.
|
inlinestaticprotected |
|
inlinestaticprotectednoexcept |
|
friend |
|
friend |
|
protected |