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