| 2576 | Handler&& handler) { |
| 2577 | struct pfs_writer { |
| 2578 | FMT_CONSTEXPR void operator()(const Char* begin, const Char* end) { |
| 2579 | if (begin == end) return; |
| 2580 | for (;;) { |
| 2581 | const Char* p = nullptr; |
| 2582 | if (!find<IS_CONSTEXPR>(begin, end, '}', p)) |
| 2583 | return handler_.on_text(begin, end); |
| 2584 | ++p; |
| 2585 | if (p == end || *p != '}') |
| 2586 | return handler_.on_error("unmatched '}' in format string"); |
| 2587 | handler_.on_text(begin, p); |
| 2588 | begin = p + 1; |
| 2589 | } |
| 2590 | } |
| 2591 | Handler& handler_; |
| 2592 | } write{handler}; |
| 2593 | auto begin = format_str.data(); |