• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// generated by diplomat-tool
2import wasm from "./diplomat-wasm.mjs";
3import * as diplomatRuntime from "./diplomat-runtime.mjs";
4
5
6/** See the [Rust documentation for `IndicSyllabicCategory`](https://docs.rs/icu/latest/icu/properties/props/struct.IndicSyllabicCategory.html) for more information.
7*/
8
9
10export class IndicSyllabicCategory {
11
12    #value = undefined;
13
14    static #values = new Map([
15        ["Other", 0],
16        ["Avagraha", 1],
17        ["Bindu", 2],
18        ["BrahmiJoiningNumber", 3],
19        ["CantillationMark", 4],
20        ["Consonant", 5],
21        ["ConsonantDead", 6],
22        ["ConsonantFinal", 7],
23        ["ConsonantHeadLetter", 8],
24        ["ConsonantInitialPostfixed", 9],
25        ["ConsonantKiller", 10],
26        ["ConsonantMedial", 11],
27        ["ConsonantPlaceholder", 12],
28        ["ConsonantPrecedingRepha", 13],
29        ["ConsonantPrefixed", 14],
30        ["ConsonantSucceedingRepha", 15],
31        ["ConsonantSubjoined", 16],
32        ["ConsonantWithStacker", 17],
33        ["GeminationMark", 18],
34        ["InvisibleStacker", 19],
35        ["Joiner", 20],
36        ["ModifyingLetter", 21],
37        ["NonJoiner", 22],
38        ["Nukta", 23],
39        ["Number", 24],
40        ["NumberJoiner", 25],
41        ["PureKiller", 26],
42        ["RegisterShifter", 27],
43        ["SyllableModifier", 28],
44        ["ToneLetter", 29],
45        ["ToneMark", 30],
46        ["Virama", 31],
47        ["Visarga", 32],
48        ["Vowel", 33],
49        ["VowelDependent", 34],
50        ["VowelIndependent", 35],
51        ["ReorderingKiller", 36]
52    ]);
53
54    static getAllEntries() {
55        return IndicSyllabicCategory.#values.entries();
56    }
57
58    #internalConstructor(value) {
59        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
60            // We pass in two internalConstructor arguments to create *new*
61            // instances of this type, otherwise the enums are treated as singletons.
62            if (arguments[1] === diplomatRuntime.internalConstructor ) {
63                this.#value = arguments[2];
64                return this;
65            }
66            return IndicSyllabicCategory.#objectValues[arguments[1]];
67        }
68
69        if (value instanceof IndicSyllabicCategory) {
70            return value;
71        }
72
73        let intVal = IndicSyllabicCategory.#values.get(value);
74
75        // Nullish check, checks for null or undefined
76        if (intVal != null) {
77            return IndicSyllabicCategory.#objectValues[intVal];
78        }
79
80        throw TypeError(value + " is not a IndicSyllabicCategory and does not correspond to any of its enumerator values.");
81    }
82
83    static fromValue(value) {
84        return new IndicSyllabicCategory(value);
85    }
86
87    get value() {
88        return [...IndicSyllabicCategory.#values.keys()][this.#value];
89    }
90
91    get ffiValue() {
92        return this.#value;
93    }
94    static #objectValues = [
95        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
96        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
97        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
98        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
99        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
100        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
101        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
102        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
103        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
104        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
105        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
106        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
107        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
108        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
109        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
110        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
111        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
112        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
113        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
114        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19),
115        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20),
116        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21),
117        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22),
118        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 23),
119        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 24),
120        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 25),
121        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 26),
122        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 27),
123        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 28),
124        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 29),
125        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 30),
126        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 31),
127        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 32),
128        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 33),
129        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 34),
130        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 35),
131        new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 36),
132    ];
133
134    static Other = IndicSyllabicCategory.#objectValues[0];
135    static Avagraha = IndicSyllabicCategory.#objectValues[1];
136    static Bindu = IndicSyllabicCategory.#objectValues[2];
137    static BrahmiJoiningNumber = IndicSyllabicCategory.#objectValues[3];
138    static CantillationMark = IndicSyllabicCategory.#objectValues[4];
139    static Consonant = IndicSyllabicCategory.#objectValues[5];
140    static ConsonantDead = IndicSyllabicCategory.#objectValues[6];
141    static ConsonantFinal = IndicSyllabicCategory.#objectValues[7];
142    static ConsonantHeadLetter = IndicSyllabicCategory.#objectValues[8];
143    static ConsonantInitialPostfixed = IndicSyllabicCategory.#objectValues[9];
144    static ConsonantKiller = IndicSyllabicCategory.#objectValues[10];
145    static ConsonantMedial = IndicSyllabicCategory.#objectValues[11];
146    static ConsonantPlaceholder = IndicSyllabicCategory.#objectValues[12];
147    static ConsonantPrecedingRepha = IndicSyllabicCategory.#objectValues[13];
148    static ConsonantPrefixed = IndicSyllabicCategory.#objectValues[14];
149    static ConsonantSucceedingRepha = IndicSyllabicCategory.#objectValues[15];
150    static ConsonantSubjoined = IndicSyllabicCategory.#objectValues[16];
151    static ConsonantWithStacker = IndicSyllabicCategory.#objectValues[17];
152    static GeminationMark = IndicSyllabicCategory.#objectValues[18];
153    static InvisibleStacker = IndicSyllabicCategory.#objectValues[19];
154    static Joiner = IndicSyllabicCategory.#objectValues[20];
155    static ModifyingLetter = IndicSyllabicCategory.#objectValues[21];
156    static NonJoiner = IndicSyllabicCategory.#objectValues[22];
157    static Nukta = IndicSyllabicCategory.#objectValues[23];
158    static Number = IndicSyllabicCategory.#objectValues[24];
159    static NumberJoiner = IndicSyllabicCategory.#objectValues[25];
160    static PureKiller = IndicSyllabicCategory.#objectValues[26];
161    static RegisterShifter = IndicSyllabicCategory.#objectValues[27];
162    static SyllableModifier = IndicSyllabicCategory.#objectValues[28];
163    static ToneLetter = IndicSyllabicCategory.#objectValues[29];
164    static ToneMark = IndicSyllabicCategory.#objectValues[30];
165    static Virama = IndicSyllabicCategory.#objectValues[31];
166    static Visarga = IndicSyllabicCategory.#objectValues[32];
167    static Vowel = IndicSyllabicCategory.#objectValues[33];
168    static VowelDependent = IndicSyllabicCategory.#objectValues[34];
169    static VowelIndependent = IndicSyllabicCategory.#objectValues[35];
170    static ReorderingKiller = IndicSyllabicCategory.#objectValues[36];
171
172    static forChar(ch) {
173        const result = wasm.icu4x_IndicSyllabicCategory_for_char_mv1(ch);
174
175        try {
176            return new IndicSyllabicCategory(diplomatRuntime.internalConstructor, result);
177        }
178
179        finally {}
180    }
181
182    toIntegerValue() {
183        const result = wasm.icu4x_IndicSyllabicCategory_to_integer_value_mv1(this.ffiValue);
184
185        try {
186            return result;
187        }
188
189        finally {}
190    }
191
192    static fromIntegerValue(other) {
193        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
194
195        const result = wasm.icu4x_IndicSyllabicCategory_from_integer_value_mv1(diplomatReceive.buffer, other);
196
197        try {
198            if (!diplomatReceive.resultFlag) {
199                return null;
200            }
201            return new IndicSyllabicCategory(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
202        }
203
204        finally {
205            diplomatReceive.free();
206        }
207    }
208
209    constructor(value) {
210        return this.#internalConstructor(...arguments)
211    }
212}