tagval 0.2.0
Modern C++23 header-only library of tagged values (open/closed enumerations with metadata)
Loading...
Searching...
No Matches
descriptor.hpp
Go to the documentation of this file.
1#pragma once
2
5
6#include <commons/color.hpp>
7#include <commons/icon.hpp>
8
9#include <optional>
10#include <string_view>
11
12namespace tagval {
13
20 // NOLINTBEGIN(readability-redundant-member-init)
21 std::string_view id;
22 std::string_view name{};
23 std::optional<comms::Icon> icon{};
24 std::optional<comms::Color> color{};
25 // NOLINTEND(readability-redundant-member-init)
26
27 [[nodiscard]] friend constexpr bool operator==(const TagValDescriptor&,
28 const TagValDescriptor&) noexcept = default;
29};
30
31} // namespace tagval
Definition base.hpp:26
Runtime metadata describing a tag-value kind (e.g.
Definition descriptor.hpp:19
std::optional< comms::Icon > icon
Optional UI icon.
Definition descriptor.hpp:23
std::string_view id
Stable identifier (e.g. "device_kind"). Required.
Definition descriptor.hpp:21
std::string_view name
Human-readable label (e.g. "Device Kind").
Definition descriptor.hpp:22
std::optional< comms::Color > color
Optional UI accent.
Definition descriptor.hpp:24
friend constexpr bool operator==(const TagValDescriptor &, const TagValDescriptor &) noexcept=default