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