13namespace di::parser::detail {
14template<concepts::SameAs<types::Tag<parser::create_parser_in_place>> Tag = types::Tag<parser::create_parser_in_place>,
15 concepts::ReflectableToEnumerators T>
18 constexpr auto valid_char_table = [] {
25 if constexpr (concepts::BitwiseEnum<T>) {
37 []<
typename Context>(Context& context,
39 if constexpr (!concepts::BitwiseEnum<T>) {
40 auto result = vocab::Optional<T> {};
55 for (
auto substring :
split(results, U
'|')) {
constexpr auto split
Definition split.h:35
constexpr auto equal
Definition equal.h:46
constexpr auto code_point
Definition code_point_parser.h:35
constexpr auto make_error
Definition make_error.h:19
constexpr auto match_one_or_more
Definition match_one_or_more.h:32
constexpr auto reflect
Definition reflect.h:47
char32_t c32
Definition char.h:6
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
Array(T, U...) -> Array< T, 1+sizeof...(U)>
constexpr void tuple_for_each(F &&function, Tup &&tuple)
Definition tuple_for_each.h:22
Unexpected(E &&) -> Unexpected< meta::UnwrapRefDecay< E > >
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
constexpr auto enumerator
Definition enumerator.h:40
constexpr auto in_place_type
Definition in_place_type.h:12