# UReplaceableCallbacks

A set of function pointers that transliterators use to manipulate a UReplaceable.

## Summary

The caller should supply the required functions to manipulate their text appropriately. Related to the C++ class Replaceable.

| ### Public attributes ||
|---|---|
| `https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1abeff06f74d058735c8ca083f034daa0f)(const UReplaceable *rep, int32_t offset)` | `https://developer.android.com/ndk/reference/group/icu4c#group__icu4c_1ga09fff5c3b5a5b015324dc3ec3cf92809(*` Function pointer that returns a UChar32 code point at the given offset into this text. |
| `https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1acde97b3ed22a24127c66ecf38c698a72)(const UReplaceable *rep, int32_t offset)` | `https://developer.android.com/ndk/reference/group/icu4c#group__icu4c_1ga6bb9fad572d65b305324ef288165e2ac(*` Function pointer that returns a UChar code units at the given offset into this text; 0 \<= offset \< n, where n is the value returned by (\*length)(rep). |
| `https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1a7affba31f6d3e5a31f8cd33358420fc6)(UReplaceable *rep, int32_t start, int32_t limit, int32_t dest)` | `void(*` Function pointer that copies text between start and limit in this text to another index in the text. |
| `https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1a423aefebaa21d2194334a795f7ae1809)(UReplaceable *rep, int32_t start, int32_t limit, UChar *dst)` | `void(*` Function pointer that copies the characters in the range \[`start`, `limit`) into the array `dst`. |
| `https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1a6c4bfa47b6752f364e4dd3f2991cedbe)(const UReplaceable *rep)` | `int32_t(*` Function pointer that returns the number of UChar code units in this text. |
| `https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1a6fe116cc3825cc6c749a95f1bd0d2315)(UReplaceable *rep, int32_t start, int32_t limit, const UChar *text, int32_t textLength)` | `void(*` Function pointer that replaces text between start and limit in this text with the given text. |

## Public attributes

### char32At

Declared in `unicode/urep.h`

```gdscript
UChar32(* UReplaceableCallbacks::char32At)(const UReplaceable *rep, int32_t offset)
```
Function pointer that returns a UChar32 code point at the given offset into this text.

See unistr.h for a description of [charAt()](https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1acde97b3ed22a24127c66ecf38c698a72) vs. [char32At()](https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1abeff06f74d058735c8ca083f034daa0f).

<br />

| Details ||
|---|---|
| Parameters | |---|---| | `rep` | A pointer to "this" UReplaceable object. | | `offset` | The index at which to fetch the UChar32 (code point). | |
| **Returns** | The UChar32 (code point) at offset, or U+FFFF if the offset is out of bounds. |

### charAt

Declared in `unicode/urep.h`

```gdscript
UChar(* UReplaceableCallbacks::charAt)(const UReplaceable *rep, int32_t offset)
```
Function pointer that returns a UChar code units at the given offset into this text; 0 \<= offset \< n, where n is the value returned by (\*length)(rep).

See unistr.h for a description of [charAt()](https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1acde97b3ed22a24127c66ecf38c698a72) vs. [char32At()](https://developer.android.com/ndk/reference/struct/u-replaceable-callbacks#struct_u_replaceable_callbacks_1abeff06f74d058735c8ca083f034daa0f).

<br />

| Details ||
|---|---|
| Parameters | |---|---| | `rep` | A pointer to "this" UReplaceable object. | | `offset` | The index at which to fetch the UChar (code unit). | |
| **Returns** | The UChar (code unit) at offset, or U+FFFF if the offset is out of bounds. |

### copy

Declared in `unicode/urep.h`

```scdoc
void(* UReplaceableCallbacks::copy)(UReplaceable *rep, int32_t start, int32_t limit, int32_t dest)
```
Function pointer that copies text between start and limit in this text to another index in the text.

Attributes (out of band info) should be retained. After this call, there will be (at least) two copies of the characters originally located at start..limit-1.

<br />

| Details ||
|---|---|
| Parameters | |---|---| | `rep` | A pointer to "this" UReplaceable object. | | `start` | the starting index of the text to be copied, inclusive. | | `limit` | the ending index of the text to be copied, exclusive. | | `dest` | the index at which the copy of the UChars should be inserted. | |

### extract

Declared in `unicode/urep.h`

```scdoc
void(* UReplaceableCallbacks::extract)(UReplaceable *rep, int32_t start, int32_t limit, UChar *dst)
```
Function pointer that copies the characters in the range \[`start`, `limit`) into the array `dst`.

<br />

| Details ||
|---|---|
| Parameters | |---|---| | `rep` | A pointer to "this" UReplaceable object. | | `start` | offset of first character which will be copied into the array | | `limit` | offset immediately following the last character to be copied | | `dst` | array in which to copy characters. The length of `dst` must be at least `(limit - start)`. | |

### length

Declared in `unicode/urep.h`

```gdscript
int32_t(* UReplaceableCallbacks::length)(const UReplaceable *rep)
```
Function pointer that returns the number of UChar code units in this text.

<br />

| Details ||
|---|---|
| Parameters | |---|---| | `rep` | A pointer to "this" UReplaceable object. | |
| **Returns** | The length of the text. |

### replace

Declared in `unicode/urep.h`

```gdscript
void(* UReplaceableCallbacks::replace)(UReplaceable *rep, int32_t start, int32_t limit, const UChar *text, int32_t textLength)
```
Function pointer that replaces text between start and limit in this text with the given text.

Attributes (out of band info) should be retained.

<br />

| Details ||
|---|---|
| Parameters | |---|---| | `rep` | A pointer to "this" UReplaceable object. | | `start` | the starting index of the text to be replaced, inclusive. | | `limit` | the ending index of the text to be replaced, exclusive. | | `text` | the new text to replace the UChars from start..limit-1. | | `textLength` | the number of UChars at text, or -1 if text is null-terminated. | |