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 25U_CDECL_BEGIN 26 27typedef void U_CALLCONV 28USetAdd(USet *set, UChar32 c); 29 30typedef void U_CALLCONV 31USetAddRange(USet *set, UChar32 start, UChar32 end); 32 33typedef void U_CALLCONV 34USetAddString(USet *set, const UChar *str, int32_t length); 35 36typedef void U_CALLCONV 37USetRemove(USet *set, UChar32 c); 38 39typedef void U_CALLCONV 40USetRemoveRange(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 */ 47struct USetAdder { 48 USet *set; 49 USetAdd *add; 50 USetAddRange *addRange; 51 USetAddString *addString; 52 USetRemove *remove; 53 USetRemoveRange *removeRange; 54}; 55typedef struct USetAdder USetAdder; 56 57U_CDECL_END 58 59#endif 60 61