Serenity Operating System
1/*
2 * Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include <AK/StringBuilder.h>
8#include <AK/Utf32View.h>
9
10namespace AK {
11
12Optional<u32> Utf32CodePointIterator::peek(size_t offset) const
13{
14 if (offset == 0) {
15 if (this->done())
16 return {};
17 return this->operator*();
18 }
19
20 auto new_iterator = *this;
21 for (size_t index = 0; index < offset; ++index) {
22 ++new_iterator;
23 if (new_iterator.done())
24 return {};
25 }
26
27 return *new_iterator;
28}
29
30ErrorOr<void> Formatter<Utf32View>::format(FormatBuilder& builder, Utf32View const& string)
31{
32 return builder.builder().try_append(string);
33}
34
35}