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