1/*
2**********************************************************************
3*   Copyright (C) 2007, International Business Machines
4*   Corporation and others.  All Rights Reserved.
5**********************************************************************
6*   file name:  unicont.h
7*   encoding:   US-ASCII
8*   tab size:   8 (not used)
9*   indentation:4
10*
11*   created on: 2007jan15
12*   created by: Markus Scherer
13*
14*   Idea for new common interface underneath the normal UnicodeSet
15*   and other classes, such as "compiled", fast, read-only (immutable)
16*   versions of UnicodeSet.
17*/
18
19class UnicodeContainable {
20public:
21    virtual ~UnicodeContainable() {}
22
23    virtual UBool contains(UChar32 c) const = 0;
24
25    virtual int32_t span(const UChar *s, int32_t length);
26
27    virtual int32_t spanNot(const UChar *s, int32_t length);
28
29    virtual int32_t spanUTF8(const UChar *s, int32_t length);
30
31    virtual int32_t spanNotUTF8(const UChar *s, int32_t length);
32
33    virtual UClassID getDynamicClassID(void) const;
34};
35