Serenity Operating System
at master 35 lines 713 B view raw
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}