// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifdef UNSAFE_BUFFERS_BUILD // TODO(crbug.com/351564777): Remove this and convert code to safer constructs. #pragma allow_unsafe_buffers #endif #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_CODE_POINT_ITERATOR_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_CODE_POINT_ITERATOR_H_ #include <unicode/utf16.h> #include "base/check_op.h" #include "base/memory/stack_allocated.h" #include "third_party/blink/renderer/platform/wtf/forward.h" namespace WTF { // // A code point iterator for 8-bits or 16-bits strings. // // This iterates 32-bit code points from 8-bits or 16-bits strings. In 8-bits // strings, a code unit is 8-bits, and it's always a code point. In UTF16 // 16-bits strings, a code unit is 16-bits, and a code point is either a code // unit (16-bits) or two code units (32-bits.) // // An instance must not outlive the target. // class CodePointIterator { … }; inline UChar32 CodePointIterator::operator*() const { … } inline void CodePointIterator::operator++() { … } } // namespace WTF #endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_CODE_POINT_ITERATOR_H_