1 | // © 2016 and later: Unicode, Inc. and others. |
2 | // License & terms of use: http://www.unicode.org/copyright.html |
3 | /* |
4 | ******************************************************************************* |
5 | * |
6 | * Copyright (C) 2004-2007, International Business Machines |
7 | * Corporation and others. All Rights Reserved. |
8 | * |
9 | ******************************************************************************* |
10 | * file name: uset_imp.h |
11 | * encoding: UTF-8 |
12 | * tab size: 8 (not used) |
13 | * indentation:4 |
14 | * |
15 | * created on: 2004sep07 |
16 | * created by: Markus W. Scherer |
17 | * |
18 | * Internal USet definitions. |
19 | */ |
20 | |
21 | #ifndef __USET_IMP_H__ |
22 | #define __USET_IMP_H__ |
23 | |
24 | #include "unicode/utypes.h" |
25 | #include "unicode/uset.h" |
26 | |
27 | U_CDECL_BEGIN |
28 | |
29 | typedef void U_CALLCONV |
30 | USetAdd(USet *set, UChar32 c); |
31 | |
32 | typedef void U_CALLCONV |
33 | USetAddRange(USet *set, UChar32 start, UChar32 end); |
34 | |
35 | typedef void U_CALLCONV |
36 | USetAddString(USet *set, const UChar *str, int32_t length); |
37 | |
38 | typedef void U_CALLCONV |
39 | USetRemove(USet *set, UChar32 c); |
40 | |
41 | typedef void U_CALLCONV |
42 | USetRemoveRange(USet *set, UChar32 start, UChar32 end); |
43 | |
44 | /** |
45 | * Interface for adding items to a USet, to keep low-level code from |
46 | * statically depending on the USet implementation. |
47 | * Calls will look like sa->add(sa->set, c); |
48 | */ |
49 | struct USetAdder { |
50 | USet *set; |
51 | USetAdd *add; |
52 | USetAddRange *addRange; |
53 | USetAddString *addString; |
54 | USetRemove *remove; |
55 | USetRemoveRange *removeRange; |
56 | }; |
57 | typedef struct USetAdder USetAdder; |
58 | |
59 | U_CDECL_END |
60 | |
61 | #ifdef __cplusplus |
62 | |
63 | namespace { |
64 | |
65 | constexpr int32_t USET_CASE_MASK = USET_CASE_INSENSITIVE | USET_ADD_CASE_MAPPINGS; |
66 | |
67 | } // namespace |
68 | |
69 | #endif // __cplusplus |
70 | |
71 | #endif |
72 | |