michael@0: /* michael@0: ******************************************************************************* michael@0: * michael@0: * Copyright (C) 2004-2007, International Business Machines michael@0: * Corporation and others. All Rights Reserved. michael@0: * michael@0: ******************************************************************************* michael@0: * file name: uset_imp.h michael@0: * encoding: US-ASCII michael@0: * tab size: 8 (not used) michael@0: * indentation:4 michael@0: * michael@0: * created on: 2004sep07 michael@0: * created by: Markus W. Scherer michael@0: * michael@0: * Internal USet definitions. michael@0: */ michael@0: michael@0: #ifndef __USET_IMP_H__ michael@0: #define __USET_IMP_H__ michael@0: michael@0: #include "unicode/utypes.h" michael@0: #include "unicode/uset.h" michael@0: michael@0: U_CDECL_BEGIN michael@0: michael@0: typedef void U_CALLCONV michael@0: USetAdd(USet *set, UChar32 c); michael@0: michael@0: typedef void U_CALLCONV michael@0: USetAddRange(USet *set, UChar32 start, UChar32 end); michael@0: michael@0: typedef void U_CALLCONV michael@0: USetAddString(USet *set, const UChar *str, int32_t length); michael@0: michael@0: typedef void U_CALLCONV michael@0: USetRemove(USet *set, UChar32 c); michael@0: michael@0: typedef void U_CALLCONV michael@0: USetRemoveRange(USet *set, UChar32 start, UChar32 end); michael@0: michael@0: /** michael@0: * Interface for adding items to a USet, to keep low-level code from michael@0: * statically depending on the USet implementation. michael@0: * Calls will look like sa->add(sa->set, c); michael@0: */ michael@0: struct USetAdder { michael@0: USet *set; michael@0: USetAdd *add; michael@0: USetAddRange *addRange; michael@0: USetAddString *addString; michael@0: USetRemove *remove; michael@0: USetRemoveRange *removeRange; michael@0: }; michael@0: typedef struct USetAdder USetAdder; michael@0: michael@0: U_CDECL_END michael@0: michael@0: #endif michael@0: