1*6777b538SAndroid Build Coastguard Worker // Copyright 2013 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker
5*6777b538SAndroid Build Coastguard Worker #include "base/i18n/string_compare.h"
6*6777b538SAndroid Build Coastguard Worker
7*6777b538SAndroid Build Coastguard Worker #include <string_view>
8*6777b538SAndroid Build Coastguard Worker
9*6777b538SAndroid Build Coastguard Worker #include "base/check.h"
10*6777b538SAndroid Build Coastguard Worker #include "base/strings/utf_string_conversions.h"
11*6777b538SAndroid Build Coastguard Worker #include "third_party/icu/source/common/unicode/unistr.h"
12*6777b538SAndroid Build Coastguard Worker
13*6777b538SAndroid Build Coastguard Worker namespace base {
14*6777b538SAndroid Build Coastguard Worker namespace i18n {
15*6777b538SAndroid Build Coastguard Worker
16*6777b538SAndroid Build Coastguard Worker // Compares the character data stored in two different std::u16string strings by
17*6777b538SAndroid Build Coastguard Worker // specified Collator instance.
CompareString16WithCollator(const icu::Collator & collator,std::u16string_view lhs,std::u16string_view rhs)18*6777b538SAndroid Build Coastguard Worker UCollationResult CompareString16WithCollator(const icu::Collator& collator,
19*6777b538SAndroid Build Coastguard Worker std::u16string_view lhs,
20*6777b538SAndroid Build Coastguard Worker std::u16string_view rhs) {
21*6777b538SAndroid Build Coastguard Worker UErrorCode error = U_ZERO_ERROR;
22*6777b538SAndroid Build Coastguard Worker UCollationResult result = collator.compare(
23*6777b538SAndroid Build Coastguard Worker icu::UnicodeString(false, lhs.data(), static_cast<int>(lhs.length())),
24*6777b538SAndroid Build Coastguard Worker icu::UnicodeString(false, rhs.data(), static_cast<int>(rhs.length())),
25*6777b538SAndroid Build Coastguard Worker error);
26*6777b538SAndroid Build Coastguard Worker DCHECK(U_SUCCESS(error));
27*6777b538SAndroid Build Coastguard Worker return result;
28*6777b538SAndroid Build Coastguard Worker }
29*6777b538SAndroid Build Coastguard Worker
30*6777b538SAndroid Build Coastguard Worker } // namespace i18n
31*6777b538SAndroid Build Coastguard Worker } // namespace base
32