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 #endif 62 63