// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_TEXT_OFFSET_MAP_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_TEXT_OFFSET_MAP_H_ #include <unicode/edits.h> #include "third_party/blink/renderer/platform/wtf/forward.h" #include "third_party/blink/renderer/platform/wtf/vector.h" #include "third_party/blink/renderer/platform/wtf/wtf_export.h" namespace WTF { // Represents a mapping of text offset when |CaseMap| changes the length of the // input string. Similar to [icu::Edits], but tracks only when the length // changes. // // For example, when a character is inserted at offset 3, this map has an entry // {3, 4}, meaning the offset 3 of the source becomes 4 in the result. When a // character is removed at offset 3, an entry {4, 3} is created. // // [icu::Edits]: http://icu-project.org/apiref/icu4c/classicu_1_1Edits.html class WTF_EXPORT TextOffsetMap { … }; WTF_EXPORT std::ostream& operator<<(std::ostream&, const TextOffsetMap::Entry&); WTF_EXPORT std::ostream& operator<<( std::ostream& stream, const Vector<TextOffsetMap::Entry>& entries); } // namespace WTF TextOffsetMap; #endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_WTF_TEXT_TEXT_OFFSET_MAP_H_