tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Weekday.mjs (2844B)


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