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