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