Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/unicode/urep.h @ 69:33d812a61356
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 17:55:14 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 69:33d812a61356 |
---|---|
1 // © 2016 and later: Unicode, Inc. and others. | |
2 // License & terms of use: http://www.unicode.org/copyright.html | |
3 /* | |
4 ****************************************************************************** | |
5 * Copyright (C) 1997-2010, International Business Machines | |
6 * Corporation and others. All Rights Reserved. | |
7 ****************************************************************************** | |
8 * Date Name Description | |
9 * 06/23/00 aliu Creation. | |
10 ****************************************************************************** | |
11 */ | |
12 | |
13 #ifndef __UREP_H | |
14 #define __UREP_H | |
15 | |
16 #include "unicode/utypes.h" | |
17 | |
18 U_CDECL_BEGIN | |
19 | |
20 /******************************************************************** | |
21 * General Notes | |
22 ******************************************************************** | |
23 * TODO | |
24 * Add usage scenario | |
25 * Add test code | |
26 * Talk about pinning | |
27 * Talk about "can truncate result if out of memory" | |
28 */ | |
29 | |
30 /******************************************************************** | |
31 * Data Structures | |
32 ********************************************************************/ | |
33 /** | |
34 * \file | |
35 * \brief C API: Callbacks for UReplaceable | |
36 */ | |
37 /** | |
38 * An opaque replaceable text object. This will be manipulated only | |
39 * through the caller-supplied UReplaceableFunctor struct. Related | |
40 * to the C++ class Replaceable. | |
41 * This is currently only used in the Transliterator C API, see utrans.h . | |
42 * @stable ICU 2.0 | |
43 */ | |
44 typedef void* UReplaceable; | |
45 | |
46 /** | |
47 * A set of function pointers that transliterators use to manipulate a | |
48 * UReplaceable. The caller should supply the required functions to | |
49 * manipulate their text appropriately. Related to the C++ class | |
50 * Replaceable. | |
51 * @stable ICU 2.0 | |
52 */ | |
53 typedef struct UReplaceableCallbacks { | |
54 | |
55 /** | |
56 * Function pointer that returns the number of UChar code units in | |
57 * this text. | |
58 * | |
59 * @param rep A pointer to "this" UReplaceable object. | |
60 * @return The length of the text. | |
61 * @stable ICU 2.0 | |
62 */ | |
63 int32_t (*length)(const UReplaceable* rep); | |
64 | |
65 /** | |
66 * Function pointer that returns a UChar code units at the given | |
67 * offset into this text; 0 <= offset < n, where n is the value | |
68 * returned by (*length)(rep). See unistr.h for a description of | |
69 * charAt() vs. char32At(). | |
70 * | |
71 * @param rep A pointer to "this" UReplaceable object. | |
72 * @param offset The index at which to fetch the UChar (code unit). | |
73 * @return The UChar (code unit) at offset, or U+FFFF if the offset is out of bounds. | |
74 * @stable ICU 2.0 | |
75 */ | |
76 UChar (*charAt)(const UReplaceable* rep, | |
77 int32_t offset); | |
78 | |
79 /** | |
80 * Function pointer that returns a UChar32 code point at the given | |
81 * offset into this text. See unistr.h for a description of | |
82 * charAt() vs. char32At(). | |
83 * | |
84 * @param rep A pointer to "this" UReplaceable object. | |
85 * @param offset The index at which to fetch the UChar32 (code point). | |
86 * @return The UChar32 (code point) at offset, or U+FFFF if the offset is out of bounds. | |
87 * @stable ICU 2.0 | |
88 */ | |
89 UChar32 (*char32At)(const UReplaceable* rep, | |
90 int32_t offset); | |
91 | |
92 /** | |
93 * Function pointer that replaces text between start and limit in | |
94 * this text with the given text. Attributes (out of band info) | |
95 * should be retained. | |
96 * | |
97 * @param rep A pointer to "this" UReplaceable object. | |
98 * @param start the starting index of the text to be replaced, | |
99 * inclusive. | |
100 * @param limit the ending index of the text to be replaced, | |
101 * exclusive. | |
102 * @param text the new text to replace the UChars from | |
103 * start..limit-1. | |
104 * @param textLength the number of UChars at text, or -1 if text | |
105 * is null-terminated. | |
106 * @stable ICU 2.0 | |
107 */ | |
108 void (*replace)(UReplaceable* rep, | |
109 int32_t start, | |
110 int32_t limit, | |
111 const UChar* text, | |
112 int32_t textLength); | |
113 | |
114 /** | |
115 * Function pointer that copies the characters in the range | |
116 * [<tt>start</tt>, <tt>limit</tt>) into the array <tt>dst</tt>. | |
117 * | |
118 * @param rep A pointer to "this" UReplaceable object. | |
119 * @param start offset of first character which will be copied | |
120 * into the array | |
121 * @param limit offset immediately following the last character to | |
122 * be copied | |
123 * @param dst array in which to copy characters. The length of | |
124 * <tt>dst</tt> must be at least <tt>(limit - start)</tt>. | |
125 * @stable ICU 2.1 | |
126 */ | |
127 void (*extract)(UReplaceable* rep, | |
128 int32_t start, | |
129 int32_t limit, | |
130 UChar* dst); | |
131 | |
132 /** | |
133 * Function pointer that copies text between start and limit in | |
134 * this text to another index in the text. Attributes (out of | |
135 * band info) should be retained. After this call, there will be | |
136 * (at least) two copies of the characters originally located at | |
137 * start..limit-1. | |
138 * | |
139 * @param rep A pointer to "this" UReplaceable object. | |
140 * @param start the starting index of the text to be copied, | |
141 * inclusive. | |
142 * @param limit the ending index of the text to be copied, | |
143 * exclusive. | |
144 * @param dest the index at which the copy of the UChars should be | |
145 * inserted. | |
146 * @stable ICU 2.0 | |
147 */ | |
148 void (*copy)(UReplaceable* rep, | |
149 int32_t start, | |
150 int32_t limit, | |
151 int32_t dest); | |
152 | |
153 } UReplaceableCallbacks; | |
154 | |
155 U_CDECL_END | |
156 | |
157 #endif |