#include "third_party/blink/renderer/platform/fonts/shaping/run_segmenter.h"
#include <algorithm>
#include <memory>
#include "base/ranges/algorithm.h"
#include "third_party/blink/renderer/platform/fonts/script_run_iterator.h"
#include "third_party/blink/renderer/platform/fonts/small_caps_iterator.h"
#include "third_party/blink/renderer/platform/fonts/symbols_iterator.h"
#include "third_party/blink/renderer/platform/fonts/utf16_text_iterator.h"
#include "third_party/blink/renderer/platform/text/character.h"
namespace blink {
RunSegmenter::RunSegmenter(const UChar* buffer,
unsigned buffer_size,
FontOrientation run_orientation)
: … { … }
template <class Iterator, typename SegmentationCategory>
void RunSegmenter::ConsumeIteratorPastLastSplit(
Iterator& iterator,
unsigned* iterator_position,
SegmentationCategory* segmentation_category) { … }
bool RunSegmenter::Consume(RunSegmenterRange* next_range) { … }
}