• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_CodePointSetBuilder_D_HPP
2 #define icu4x_CodePointSetBuilder_D_HPP
3 
4 #include <stdio.h>
5 #include <stdint.h>
6 #include <stddef.h>
7 #include <stdbool.h>
8 #include <memory>
9 #include <functional>
10 #include <optional>
11 #include "../diplomat_runtime.hpp"
12 
13 namespace icu4x {
14 namespace capi { struct CodePointSetBuilder; }
15 class CodePointSetBuilder;
16 namespace capi { struct CodePointSetData; }
17 class CodePointSetData;
18 }
19 
20 
21 namespace icu4x {
22 namespace capi {
23     struct CodePointSetBuilder;
24 } // namespace capi
25 } // namespace
26 
27 namespace icu4x {
28 class CodePointSetBuilder {
29 public:
30 
31   inline static std::unique_ptr<icu4x::CodePointSetBuilder> create();
32 
33   inline std::unique_ptr<icu4x::CodePointSetData> build();
34 
35   inline void complement();
36 
37   inline bool is_empty() const;
38 
39   inline void add_char(char32_t ch);
40 
41   inline void add_inclusive_range(char32_t start, char32_t end);
42 
43   inline void add_set(const icu4x::CodePointSetData& data);
44 
45   inline void remove_char(char32_t ch);
46 
47   inline void remove_inclusive_range(char32_t start, char32_t end);
48 
49   inline void remove_set(const icu4x::CodePointSetData& data);
50 
51   inline void retain_char(char32_t ch);
52 
53   inline void retain_inclusive_range(char32_t start, char32_t end);
54 
55   inline void retain_set(const icu4x::CodePointSetData& data);
56 
57   inline void complement_char(char32_t ch);
58 
59   inline void complement_inclusive_range(char32_t start, char32_t end);
60 
61   inline void complement_set(const icu4x::CodePointSetData& data);
62 
63   inline const icu4x::capi::CodePointSetBuilder* AsFFI() const;
64   inline icu4x::capi::CodePointSetBuilder* AsFFI();
65   inline static const icu4x::CodePointSetBuilder* FromFFI(const icu4x::capi::CodePointSetBuilder* ptr);
66   inline static icu4x::CodePointSetBuilder* FromFFI(icu4x::capi::CodePointSetBuilder* ptr);
67   inline static void operator delete(void* ptr);
68 private:
69   CodePointSetBuilder() = delete;
70   CodePointSetBuilder(const icu4x::CodePointSetBuilder&) = delete;
71   CodePointSetBuilder(icu4x::CodePointSetBuilder&&) noexcept = delete;
72   CodePointSetBuilder operator=(const icu4x::CodePointSetBuilder&) = delete;
73   CodePointSetBuilder operator=(icu4x::CodePointSetBuilder&&) noexcept = delete;
74   static void operator delete[](void*, size_t) = delete;
75 };
76 
77 } // namespace
78 #endif // icu4x_CodePointSetBuilder_D_HPP
79