#define DEBUG_COLLATION_FAST_LATIN_BUILDER …
#if DEBUG_COLLATION_FAST_LATIN_BUILDER
#include <stdio.h>
#include <string>
#endif
#include "unicode/utypes.h"
#if !UCONFIG_NO_COLLATION
#include "unicode/ucol.h"
#include "unicode/ucharstrie.h"
#include "unicode/unistr.h"
#include "unicode/uobject.h"
#include "unicode/uscript.h"
#include "cmemory.h"
#include "collation.h"
#include "collationdata.h"
#include "collationfastlatin.h"
#include "collationfastlatinbuilder.h"
#include "uassert.h"
#include "uvectr64.h"
U_NAMESPACE_BEGIN
struct CollationData;
namespace {
int32_t
compareInt64AsUnsigned(int64_t a, int64_t b) { … }
int32_t
binarySearch(const int64_t list[], int32_t limit, int64_t ce) { … }
}
CollationFastLatinBuilder::CollationFastLatinBuilder(UErrorCode &errorCode)
: … { … }
CollationFastLatinBuilder::~CollationFastLatinBuilder() { … }
UBool
CollationFastLatinBuilder::forData(const CollationData &data, UErrorCode &errorCode) { … }
UBool
CollationFastLatinBuilder::loadGroups(const CollationData &data, UErrorCode &errorCode) { … }
UBool
CollationFastLatinBuilder::inSameGroup(uint32_t p, uint32_t q) const { … }
void
CollationFastLatinBuilder::resetCEs() { … }
void
CollationFastLatinBuilder::getCEs(const CollationData &data, UErrorCode &errorCode) { … }
UBool
CollationFastLatinBuilder::getCEsFromCE32(const CollationData &data, UChar32 c, uint32_t ce32,
UErrorCode &errorCode) { … }
UBool
CollationFastLatinBuilder::getCEsFromContractionCE32(const CollationData &data, uint32_t ce32,
UErrorCode &errorCode) { … }
void
CollationFastLatinBuilder::addContractionEntry(int32_t x, int64_t cce0, int64_t cce1,
UErrorCode &errorCode) { … }
void
CollationFastLatinBuilder::addUniqueCE(int64_t ce, UErrorCode &errorCode) { … }
uint32_t
CollationFastLatinBuilder::getMiniCE(int64_t ce) const { … }
UBool
CollationFastLatinBuilder::encodeUniqueCEs(UErrorCode &errorCode) { … }
UBool
CollationFastLatinBuilder::encodeCharCEs(UErrorCode &errorCode) { … }
UBool
CollationFastLatinBuilder::encodeContractions(UErrorCode &errorCode) { … }
uint32_t
CollationFastLatinBuilder::encodeTwoCEs(int64_t first, int64_t second) const { … }
U_NAMESPACE_END
#endif