Lines Matching refs:Traits
35 // The Traits class should look like the following:
57 template <typename Traits>
65 bool operator()(const Ordinal<Traits>& lhs,
66 const Ordinal<Traits>& rhs) const;
73 bool operator()(const Ordinal<Traits>& lhs,
74 const Ordinal<Traits>& rhs) const;
135 static const uint8 kZeroDigit = Traits::kZeroDigit;
136 static const uint8 kMaxDigit = Traits::kMaxDigit;
137 static const size_t kMinLength = Traits::kMinLength;
191 static Ordinal<Traits> CreateOrdinalBetween(const Ordinal<Traits>& start,
192 const Ordinal<Traits>& end);
202 template <typename Traits> const uint8 Ordinal<Traits>::kZeroDigit;
203 template <typename Traits> const uint8 Ordinal<Traits>::kMaxDigit;
204 template <typename Traits> const size_t Ordinal<Traits>::kMinLength;
205 template <typename Traits> const uint8 Ordinal<Traits>::kOneDigit;
206 template <typename Traits> const uint8 Ordinal<Traits>::kMidDigit;
207 template <typename Traits> const unsigned int Ordinal<Traits>::kMidDigitValue;
208 template <typename Traits> const unsigned int Ordinal<Traits>::kMaxDigitValue;
209 template <typename Traits> const unsigned int Ordinal<Traits>::kRadix;
211 template <typename Traits>
212 Ordinal<Traits>::LessThanFn::LessThanFn() {}
214 template <typename Traits>
215 bool Ordinal<Traits>::LessThanFn::operator()(const Ordinal<Traits>& lhs,
216 const Ordinal<Traits>& rhs) const {
220 template <typename Traits>
221 Ordinal<Traits>::EqualsFn::EqualsFn() {}
223 template <typename Traits>
224 bool Ordinal<Traits>::EqualsFn::operator()(const Ordinal<Traits>& lhs,
225 const Ordinal<Traits>& rhs) const {
229 template <typename Traits>
230 Ordinal<Traits>::Ordinal(const std::string& bytes)
234 template <typename Traits>
235 Ordinal<Traits>::Ordinal() : is_valid_(false) {}
237 template <typename Traits>
238 Ordinal<Traits> Ordinal<Traits>::CreateInitialOrdinal() {
239 std::string bytes(Traits::kMinLength, kZeroDigit);
244 template <typename Traits>
245 bool Ordinal<Traits>::IsValid() const {
250 template <typename Traits>
251 bool Ordinal<Traits>::EqualsOrBothInvalid(const Ordinal& other) const {
261 template <typename Traits>
262 std::string Ordinal<Traits>::ToDebugString() const {
271 template <typename Traits>
272 bool Ordinal<Traits>::LessThan(const Ordinal& other) const {
278 template <typename Traits>
279 bool Ordinal<Traits>::GreaterThan(const Ordinal& other) const {
285 template <typename Traits>
286 bool Ordinal<Traits>::Equals(const Ordinal& other) const {
292 template <typename Traits>
293 Ordinal<Traits> Ordinal<Traits>::CreateBetween(const Ordinal& other) const {
305 template <typename Traits>
306 Ordinal<Traits> Ordinal<Traits>::CreateBefore() const {
324 template <typename Traits>
325 Ordinal<Traits> Ordinal<Traits>::CreateAfter() const {
339 template <typename Traits>
340 std::string Ordinal<Traits>::ToInternalValue() const {
345 template <typename Traits>
346 bool Ordinal<Traits>::IsValidOrdinalBytes(const std::string& bytes) {
371 template <typename Traits>
372 size_t Ordinal<Traits>::GetLengthWithoutTrailingZeroDigits(
388 template <typename Traits>
389 uint8 Ordinal<Traits>::GetDigit(const std::string& bytes, size_t i) {
393 template <typename Traits>
394 int Ordinal<Traits>::GetDigitValue(const std::string& bytes, size_t i) {
398 template <typename Traits>
399 int Ordinal<Traits>::AddDigitValue(std::string* bytes,
414 template <typename Traits>
415 size_t Ordinal<Traits>::GetProperLength(const std::string& lower_bound,
434 template <typename Traits>
435 std::string Ordinal<Traits>::ComputeMidpoint(
461 template <typename Traits>
462 Ordinal<Traits> Ordinal<Traits>::CreateOrdinalBetween(
463 const Ordinal<Traits>& start,
464 const Ordinal<Traits>& end) {
479 Ordinal<Traits> midpoint_ordinal(midpoint);