15 static constexpr std::size_t
Count{
sizeof...(Ts) };
16 static constexpr bool Single{
sizeof...(Ts) == 1 };
18 static_assert(
sizeof...(Ts) >= 1,
"At least 1 type must be provided.");
20 using HeaderType = std::conditional_t<IsConst, const Headers, Headers>;
21 using PatternType = std::conditional_t<Single, std::string_view, std::array<std::string_view, Count>>;
22#ifdef __cpp_pack_indexing
23 using ElemType = std::conditional_t<
Single, Ts...[0], std::variant<Ts...>>;
26 template<
class F,
class...>
struct First {
using Type = F; };
30 using Type = std::vector<ElemType>;
38 std::expected<Type, HeaderErrorEnum>
Get() &&;
41 template<std::ranges::range R>
43 void operator=(R&& newValue) &&;
45 template<std::ranges::range R>
47 void Set(R&& newValue) &&;
49 template<
class =
void>
53 template<
class =
void>
55 bool TrySet(std::string_view newValue) &&;
62 const std::string_view key;