/* * Copyright (C) 2015, International Business Machines * Corporation and others. All Rights Reserved. * * file name: digitinterval.cpp */ #include "unicode/utypes.h" #include "digitinterval.h" U_NAMESPACE_BEGIN void DigitInterval::expandToContain(const DigitInterval &rhs) { if (fSmallestInclusive > rhs.fSmallestInclusive) { fSmallestInclusive = rhs.fSmallestInclusive; } if (fLargestExclusive < rhs.fLargestExclusive) { fLargestExclusive = rhs.fLargestExclusive; } } void DigitInterval::shrinkToFitWithin(const DigitInterval &rhs) { if (fSmallestInclusive < rhs.fSmallestInclusive) { fSmallestInclusive = rhs.fSmallestInclusive; } if (fLargestExclusive > rhs.fLargestExclusive) { fLargestExclusive = rhs.fLargestExclusive; } } void DigitInterval::setIntDigitCount(int32_t count) { fLargestExclusive = count < 0 ? INT32_MAX : count; } void DigitInterval::setFracDigitCount(int32_t count) { fSmallestInclusive = count < 0 ? INT32_MIN : -count; } void DigitInterval::expandToContainDigit(int32_t digitExponent) { if (fLargestExclusive <= digitExponent) { fLargestExclusive = digitExponent + 1; } else if (fSmallestInclusive > digitExponent) { fSmallestInclusive = digitExponent; } } UBool DigitInterval::contains(int32_t x) const { return (x < fLargestExclusive && x >= fSmallestInclusive); } U_NAMESPACE_END