16 template<concepts::Encoding Enc,
typename Var>
17 constexpr auto do_format(Var&& variant, FormatParseContext<Enc>& parse_context,
18 concepts::FormatContext
auto& context,
bool debug =
false) ->
Result<void> {
21 if constexpr (concepts::InstanceOf<meta::RemoveCVRef<T>, ErasedArg>) {
22 return value.do_format(parse_context, context, debug);
31 template<concepts::Encoding Enc>
32 struct VPresentEncodedContextFunction {
33 using View = container::string::StringViewImpl<Enc>;
35 template<concepts::FormatArg Arg>
36 constexpr auto operator()(View format, FormatArgs<Arg> args, concepts::FormatContext
auto& context,
37 bool debug =
false) const ->
Result<
void> {
38 auto parse_context = FormatParseContext<Enc> { format, args.size() };
40 for (
auto value : parse_context) {
44 if (
value->index() == 0) {
46 context.output(code_point);
53 DI_TRY(do_format(args[arg_index], parse_context, context, debug));
60template<concepts::Encoding Enc>
#define DI_ASSERT(...)
Definition assert_bool.h:7
#define DI_TRY(...)
Definition monad_try.h:13
constexpr auto value
Definition value.h:34
constexpr auto get(T &&value) -> decltype(auto)
Definition get.h:8
Expected< T, Error > Result
Definition result.h:8
constexpr auto visit(Vis &&visitor, Vars &&... variants) -> R
Definition visit.h:39