• 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
7export class Weekday {
8
9    #value = undefined;
10
11    static #values = new Map([
12        ["Monday", 1],
13        ["Tuesday", 2],
14        ["Wednesday", 3],
15        ["Thursday", 4],
16        ["Friday", 5],
17        ["Saturday", 6],
18        ["Sunday", 7]
19    ]);
20
21    static getAllEntries() {
22        return Weekday.#values.entries();
23    }
24
25    #internalConstructor(value) {
26        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
27            // We pass in two internalConstructor arguments to create *new*
28            // instances of this type, otherwise the enums are treated as singletons.
29            if (arguments[1] === diplomatRuntime.internalConstructor ) {
30                this.#value = arguments[2];
31                return this;
32            }
33            return Weekday.#objectValues[arguments[1]];
34        }
35
36        if (value instanceof Weekday) {
37            return value;
38        }
39
40        let intVal = Weekday.#values.get(value);
41
42        // Nullish check, checks for null or undefined
43        if (intVal != null) {
44            return Weekday.#objectValues[intVal];
45        }
46
47        throw TypeError(value + " is not a Weekday and does not correspond to any of its enumerator values.");
48    }
49
50    static fromValue(value) {
51        return new Weekday(value);
52    }
53
54    get value() {
55        for (let entry of Weekday.#values) {
56            if (entry[1] == this.#value) {
57                return entry[0];
58            }
59        }
60    }
61
62    get ffiValue() {
63        return this.#value;
64    }
65    static #objectValues = {
66        [1]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
67        [2]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
68        [3]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
69        [4]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
70        [5]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
71        [6]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
72        [7]: new Weekday(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
73    };
74
75    static Monday = Weekday.#objectValues[1];
76    static Tuesday = Weekday.#objectValues[2];
77    static Wednesday = Weekday.#objectValues[3];
78    static Thursday = Weekday.#objectValues[4];
79    static Friday = Weekday.#objectValues[5];
80    static Saturday = Weekday.#objectValues[6];
81    static Sunday = Weekday.#objectValues[7];
82
83    constructor(value) {
84        return this.#internalConstructor(...arguments)
85    }
86}