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 `TimePrecision`](https://docs.rs/icu/latest/icu/datetime/enum.TimePrecision.html) for more information. 7*/ 8 9 10export class TimePrecision { 11 12 #value = undefined; 13 14 static #values = new Map([ 15 ["Hour", 0], 16 ["Minute", 1], 17 ["MinuteOptional", 2], 18 ["Second", 3], 19 ["Subsecond1", 4], 20 ["Subsecond2", 5], 21 ["Subsecond3", 6], 22 ["Subsecond4", 7], 23 ["Subsecond5", 8], 24 ["Subsecond6", 9], 25 ["Subsecond7", 10], 26 ["Subsecond8", 11], 27 ["Subsecond9", 12] 28 ]); 29 30 static getAllEntries() { 31 return TimePrecision.#values.entries(); 32 } 33 34 #internalConstructor(value) { 35 if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) { 36 // We pass in two internalConstructor arguments to create *new* 37 // instances of this type, otherwise the enums are treated as singletons. 38 if (arguments[1] === diplomatRuntime.internalConstructor ) { 39 this.#value = arguments[2]; 40 return this; 41 } 42 return TimePrecision.#objectValues[arguments[1]]; 43 } 44 45 if (value instanceof TimePrecision) { 46 return value; 47 } 48 49 let intVal = TimePrecision.#values.get(value); 50 51 // Nullish check, checks for null or undefined 52 if (intVal != null) { 53 return TimePrecision.#objectValues[intVal]; 54 } 55 56 throw TypeError(value + " is not a TimePrecision and does not correspond to any of its enumerator values."); 57 } 58 59 static fromValue(value) { 60 return new TimePrecision(value); 61 } 62 63 get value() { 64 return [...TimePrecision.#values.keys()][this.#value]; 65 } 66 67 get ffiValue() { 68 return this.#value; 69 } 70 static #objectValues = [ 71 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0), 72 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1), 73 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2), 74 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3), 75 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4), 76 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5), 77 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6), 78 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7), 79 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8), 80 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9), 81 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10), 82 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11), 83 new TimePrecision(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12), 84 ]; 85 86 static Hour = TimePrecision.#objectValues[0]; 87 static Minute = TimePrecision.#objectValues[1]; 88 static MinuteOptional = TimePrecision.#objectValues[2]; 89 static Second = TimePrecision.#objectValues[3]; 90 static Subsecond1 = TimePrecision.#objectValues[4]; 91 static Subsecond2 = TimePrecision.#objectValues[5]; 92 static Subsecond3 = TimePrecision.#objectValues[6]; 93 static Subsecond4 = TimePrecision.#objectValues[7]; 94 static Subsecond5 = TimePrecision.#objectValues[8]; 95 static Subsecond6 = TimePrecision.#objectValues[9]; 96 static Subsecond7 = TimePrecision.#objectValues[10]; 97 static Subsecond8 = TimePrecision.#objectValues[11]; 98 static Subsecond9 = TimePrecision.#objectValues[12]; 99 100 constructor(value) { 101 return this.#internalConstructor(...arguments) 102 } 103}