MCPcopy Create free account
hub / github.com/ObEngine/ObEngine / parse_align

Function parse_align

extlibs/fmt/include/fmt/format.h:2413–2453  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2411// Parses fill and alignment.
2412template <typename Char, typename Handler>
2413FMT_CONSTEXPR const Char* parse_align(const Char* begin, const Char* end,
2414 Handler&& handler) {
2415 FMT_ASSERT(begin != end, "");
2416 auto align = align::none;
2417 auto p = next_code_point(begin, end);
2418 if (p == end) p = begin;
2419 for (;;) {
2420 switch (static_cast<char>(*p)) {
2421 case '<':
2422 align = align::left;
2423 break;
2424 case '>':
2425 align = align::right;
2426 break;
2427#if FMT_NUMERIC_ALIGN
2428 case '=':
2429 align = align::numeric;
2430 break;
2431#endif
2432 case '^':
2433 align = align::center;
2434 break;
2435 }
2436 if (align != align::none) {
2437 if (p != begin) {
2438 auto c = *begin;
2439 if (c == '{')
2440 return handler.on_error("invalid fill character '{'"), begin;
2441 handler.on_fill(basic_string_view<Char>(begin, to_unsigned(p - begin)));
2442 begin = p + 1;
2443 } else
2444 ++begin;
2445 handler.on_align(align);
2446 break;
2447 } else if (p == begin) {
2448 break;
2449 }
2450 p = begin;
2451 }
2452 return begin;
2453}
2454
2455template <typename Char, typename Handler>
2456FMT_CONSTEXPR const Char* parse_width(const Char* begin, const Char* end,

Callers 2

do_parseMethod · 0.85
parse_format_specsFunction · 0.85

Calls 4

next_code_pointFunction · 0.85
on_errorMethod · 0.45
on_fillMethod · 0.45
on_alignMethod · 0.45

Tested by

no test coverage detected