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 `BidiClass`](https://docs.rs/icu/latest/icu/properties/props/struct.BidiClass.html) for more information. 7*/ 8 9 10export class BidiClass { 11 12 #value = undefined; 13 14 static #values = new Map([ 15 ["LeftToRight", 0], 16 ["RightToLeft", 1], 17 ["EuropeanNumber", 2], 18 ["EuropeanSeparator", 3], 19 ["EuropeanTerminator", 4], 20 ["ArabicNumber", 5], 21 ["CommonSeparator", 6], 22 ["ParagraphSeparator", 7], 23 ["SegmentSeparator", 8], 24 ["WhiteSpace", 9], 25 ["OtherNeutral", 10], 26 ["LeftToRightEmbedding", 11], 27 ["LeftToRightOverride", 12], 28 ["ArabicLetter", 13], 29 ["RightToLeftEmbedding", 14], 30 ["RightToLeftOverride", 15], 31 ["PopDirectionalFormat", 16], 32 ["NonspacingMark", 17], 33 ["BoundaryNeutral", 18], 34 ["FirstStrongIsolate", 19], 35 ["LeftToRightIsolate", 20], 36 ["RightToLeftIsolate", 21], 37 ["PopDirectionalIsolate", 22] 38 ]); 39 40 static getAllEntries() { 41 return BidiClass.#values.entries(); 42 } 43 44 #internalConstructor(value) { 45 if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) { 46 // We pass in two internalConstructor arguments to create *new* 47 // instances of this type, otherwise the enums are treated as singletons. 48 if (arguments[1] === diplomatRuntime.internalConstructor ) { 49 this.#value = arguments[2]; 50 return this; 51 } 52 return BidiClass.#objectValues[arguments[1]]; 53 } 54 55 if (value instanceof BidiClass) { 56 return value; 57 } 58 59 let intVal = BidiClass.#values.get(value); 60 61 // Nullish check, checks for null or undefined 62 if (intVal != null) { 63 return BidiClass.#objectValues[intVal]; 64 } 65 66 throw TypeError(value + " is not a BidiClass and does not correspond to any of its enumerator values."); 67 } 68 69 static fromValue(value) { 70 return new BidiClass(value); 71 } 72 73 get value() { 74 return [...BidiClass.#values.keys()][this.#value]; 75 } 76 77 get ffiValue() { 78 return this.#value; 79 } 80 static #objectValues = [ 81 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0), 82 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1), 83 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2), 84 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3), 85 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4), 86 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5), 87 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6), 88 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7), 89 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8), 90 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9), 91 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10), 92 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11), 93 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12), 94 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13), 95 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14), 96 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15), 97 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16), 98 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17), 99 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18), 100 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19), 101 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20), 102 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21), 103 new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22), 104 ]; 105 106 static LeftToRight = BidiClass.#objectValues[0]; 107 static RightToLeft = BidiClass.#objectValues[1]; 108 static EuropeanNumber = BidiClass.#objectValues[2]; 109 static EuropeanSeparator = BidiClass.#objectValues[3]; 110 static EuropeanTerminator = BidiClass.#objectValues[4]; 111 static ArabicNumber = BidiClass.#objectValues[5]; 112 static CommonSeparator = BidiClass.#objectValues[6]; 113 static ParagraphSeparator = BidiClass.#objectValues[7]; 114 static SegmentSeparator = BidiClass.#objectValues[8]; 115 static WhiteSpace = BidiClass.#objectValues[9]; 116 static OtherNeutral = BidiClass.#objectValues[10]; 117 static LeftToRightEmbedding = BidiClass.#objectValues[11]; 118 static LeftToRightOverride = BidiClass.#objectValues[12]; 119 static ArabicLetter = BidiClass.#objectValues[13]; 120 static RightToLeftEmbedding = BidiClass.#objectValues[14]; 121 static RightToLeftOverride = BidiClass.#objectValues[15]; 122 static PopDirectionalFormat = BidiClass.#objectValues[16]; 123 static NonspacingMark = BidiClass.#objectValues[17]; 124 static BoundaryNeutral = BidiClass.#objectValues[18]; 125 static FirstStrongIsolate = BidiClass.#objectValues[19]; 126 static LeftToRightIsolate = BidiClass.#objectValues[20]; 127 static RightToLeftIsolate = BidiClass.#objectValues[21]; 128 static PopDirectionalIsolate = BidiClass.#objectValues[22]; 129 130 static forChar(ch) { 131 const result = wasm.icu4x_BidiClass_for_char_mv1(ch); 132 133 try { 134 return new BidiClass(diplomatRuntime.internalConstructor, result); 135 } 136 137 finally {} 138 } 139 140 longName() { 141 const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true); 142 143 const result = wasm.icu4x_BidiClass_long_name_mv1(diplomatReceive.buffer, this.ffiValue); 144 145 try { 146 if (!diplomatReceive.resultFlag) { 147 return null; 148 } 149 return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer, "string8", []).getValue(); 150 } 151 152 finally { 153 diplomatReceive.free(); 154 } 155 } 156 157 shortName() { 158 const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true); 159 160 const result = wasm.icu4x_BidiClass_short_name_mv1(diplomatReceive.buffer, this.ffiValue); 161 162 try { 163 if (!diplomatReceive.resultFlag) { 164 return null; 165 } 166 return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer, "string8", []).getValue(); 167 } 168 169 finally { 170 diplomatReceive.free(); 171 } 172 } 173 174 toIntegerValue() { 175 const result = wasm.icu4x_BidiClass_to_integer_value_mv1(this.ffiValue); 176 177 try { 178 return result; 179 } 180 181 finally {} 182 } 183 184 static fromIntegerValue(other) { 185 const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true); 186 187 const result = wasm.icu4x_BidiClass_from_integer_value_mv1(diplomatReceive.buffer, other); 188 189 try { 190 if (!diplomatReceive.resultFlag) { 191 return null; 192 } 193 return new BidiClass(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer)); 194 } 195 196 finally { 197 diplomatReceive.free(); 198 } 199 } 200 201 constructor(value) { 202 return this.#internalConstructor(...arguments) 203 } 204}