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}