tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

NumberPart.h (1263B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 #ifndef intl_components_NumberPart_h_
      5 #define intl_components_NumberPart_h_
      6 
      7 #include <cstddef>
      8 #include <cstdint>
      9 
     10 #include "mozilla/Vector.h"
     11 
     12 namespace mozilla::intl {
     13 
     14 enum class NumberPartType : int16_t {
     15  ApproximatelySign,
     16  Compact,
     17  Currency,
     18  Decimal,
     19  ExponentInteger,
     20  ExponentMinusSign,
     21  ExponentSeparator,
     22  Fraction,
     23  Group,
     24  Infinity,
     25  Integer,
     26  Literal,
     27  MinusSign,
     28  Nan,
     29  Percent,
     30  PlusSign,
     31  Unit,
     32 };
     33 
     34 enum class NumberPartSource : int16_t { Shared, Start, End };
     35 
     36 // Because parts fully partition the formatted string, we only track the
     37 // index of the end of each part -- the beginning is implicitly the last
     38 // part's end.
     39 struct NumberPart {
     40  NumberPartType type;
     41  NumberPartSource source;
     42  size_t endIndex;
     43 
     44  bool operator==(const NumberPart& rhs) const {
     45    return type == rhs.type && source == rhs.source && endIndex == rhs.endIndex;
     46  }
     47  bool operator!=(const NumberPart& rhs) const { return !(*this == rhs); }
     48 };
     49 
     50 using NumberPartVector = mozilla::Vector<NumberPart, 8>;
     51 
     52 }  // namespace mozilla::intl
     53 #endif