1 #pragma once
2 
3 #include <mbgl/util/feature.hpp>
4 #include <mbgl/util/optional.hpp>
5 
6 #include <string>
7 #include <memory>
8 
9 namespace mbgl {
10 namespace style {
11 namespace expression {
12 
13 class Collator {
14 public:
15     Collator(bool caseSensitive, bool diacriticSensitive, optional<std::string> locale = {});
16 
17     bool operator==(const Collator& other) const;
18 
19     int compare(const std::string& lhs, const std::string& rhs) const;
20 
21     std::string resolvedLocale() const;
22 private:
23     class Impl;
24     std::shared_ptr<Impl> impl;
25 };
26 
27 } // namespace expression
28 } // namespace style
29 } // namespace mbgl
30