2
******************************************************************************
3
* Copyright (C) 1997-2001, International Business Machines
4
* Corporation and others. All Rights Reserved.
5
******************************************************************************
6
* Date Name Description
7
* 06/23/00 aliu Creation.
8
******************************************************************************
14
#include "unicode/utypes.h"
18
/********************************************************************
20
********************************************************************
25
* Talk about "can truncate result if out of memory"
28
/********************************************************************
30
********************************************************************/
33
* An opaque replaceable text object. This will be manipulated only
34
* through the caller-supplied UReplaceableFunctor struct. Related
35
* to the C++ class Replaceable.
38
typedef void* UReplaceable;
41
* A set of function pointers that transliterators use to manipulate a
42
* UReplaceable. The caller should supply the required functions to
43
* manipulate their text appropriately. Related to the C++ class
47
typedef struct _UReplaceableCallbacks {
50
* Function pointer that returns the number of UChar code units in
54
int32_t (*length)(const UReplaceable* rep);
57
* Function pointer that returns a UChar code units at the given
58
* offset into this text; 0 <= offset < n, where n is the value
59
* returned by (*length)(rep). See unistr.h for a description of
60
* charAt() vs. char32At().
63
UChar (*charAt)(const UReplaceable* rep,
67
* Function pointer that returns a UChar32 code point at the given
68
* offset into this text. See unistr.h for a description of
69
* charAt() vs. char32At().
72
UChar32 (*char32At)(const UReplaceable* rep,
76
* Function pointer that replaces text between start and limit in
77
* this text with the given text. Attributes (out of band info)
79
* @param start the starting index of the text to be replaced,
81
* @param limit the ending index of the text to be replaced,
83
* @param text the new text to replace the UChars from
85
* @param textLength the number of UChars at text, or -1 if text
89
void (*replace)(UReplaceable* rep,
96
* Function pointer that copies the characters in the range
97
* [<tt>start</tt>, <tt>limit</tt>) into the array <tt>dst</tt>.
98
* @param start offset of first character which will be copied
100
* @param limit offset immediately following the last character to
102
* @param dst array in which to copy characters. The length of
103
* <tt>dst</tt> must be at least <tt>(limit - start)</tt>.
106
void (*extract)(UReplaceable* rep,
112
* Function pointer that copies text between start and limit in
113
* this text to another index in the text. Attributes (out of
114
* band info) should be retained. After this call, there will be
115
* (at least) two copies of the characters originally located at
117
* @param start the starting index of the text to be copied,
119
* @param limit the ending index of the text to be copied,
121
* @param dest the index at which the copy of the UChars should be
125
void (*copy)(UReplaceable* rep,
130
} UReplaceableCallbacks;