// generated by diplomat-tool
import wasm from "./diplomat-wasm.mjs";
import * as diplomatRuntime from "./diplomat-runtime.mjs";



/**
 * See the [Rust documentation for `JoiningGroup`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html) for more information.
 */
export class JoiningGroup {
    #value = undefined;

    static #values = new Map([
        ["NoJoiningGroup", 0],
        ["Ain", 1],
        ["Alaph", 2],
        ["Alef", 3],
        ["Beh", 4],
        ["Beth", 5],
        ["Dal", 6],
        ["DalathRish", 7],
        ["E", 8],
        ["Feh", 9],
        ["FinalSemkath", 10],
        ["Gaf", 11],
        ["Gamal", 12],
        ["Hah", 13],
        ["TehMarbutaGoal", 14],
        ["He", 15],
        ["Heh", 16],
        ["HehGoal", 17],
        ["Heth", 18],
        ["Kaf", 19],
        ["Kaph", 20],
        ["KnottedHeh", 21],
        ["Lam", 22],
        ["Lamadh", 23],
        ["Meem", 24],
        ["Mim", 25],
        ["Noon", 26],
        ["Nun", 27],
        ["Pe", 28],
        ["Qaf", 29],
        ["Qaph", 30],
        ["Reh", 31],
        ["ReversedPe", 32],
        ["Sad", 33],
        ["Sadhe", 34],
        ["Seen", 35],
        ["Semkath", 36],
        ["Shin", 37],
        ["SwashKaf", 38],
        ["SyriacWaw", 39],
        ["Tah", 40],
        ["Taw", 41],
        ["TehMarbuta", 42],
        ["Teth", 43],
        ["Waw", 44],
        ["Yeh", 45],
        ["YehBarree", 46],
        ["YehWithTail", 47],
        ["Yudh", 48],
        ["YudhHe", 49],
        ["Zain", 50],
        ["Fe", 51],
        ["Khaph", 52],
        ["Zhain", 53],
        ["BurushaskiYehBarree", 54],
        ["FarsiYeh", 55],
        ["Nya", 56],
        ["RohingyaYeh", 57],
        ["ManichaeanAleph", 58],
        ["ManichaeanAyin", 59],
        ["ManichaeanBeth", 60],
        ["ManichaeanDaleth", 61],
        ["ManichaeanDhamedh", 62],
        ["ManichaeanFive", 63],
        ["ManichaeanGimel", 64],
        ["ManichaeanHeth", 65],
        ["ManichaeanHundred", 66],
        ["ManichaeanKaph", 67],
        ["ManichaeanLamedh", 68],
        ["ManichaeanMem", 69],
        ["ManichaeanNun", 70],
        ["ManichaeanOne", 71],
        ["ManichaeanPe", 72],
        ["ManichaeanQoph", 73],
        ["ManichaeanResh", 74],
        ["ManichaeanSadhe", 75],
        ["ManichaeanSamekh", 76],
        ["ManichaeanTaw", 77],
        ["ManichaeanTen", 78],
        ["ManichaeanTeth", 79],
        ["ManichaeanThamedh", 80],
        ["ManichaeanTwenty", 81],
        ["ManichaeanWaw", 82],
        ["ManichaeanYodh", 83],
        ["ManichaeanZayin", 84],
        ["StraightWaw", 85],
        ["AfricanFeh", 86],
        ["AfricanNoon", 87],
        ["AfricanQaf", 88],
        ["MalayalamBha", 89],
        ["MalayalamJa", 90],
        ["MalayalamLla", 91],
        ["MalayalamLlla", 92],
        ["MalayalamNga", 93],
        ["MalayalamNna", 94],
        ["MalayalamNnna", 95],
        ["MalayalamNya", 96],
        ["MalayalamRa", 97],
        ["MalayalamSsa", 98],
        ["MalayalamTta", 99],
        ["HanifiRohingyaKinnaYa", 100],
        ["HanifiRohingyaPa", 101],
        ["ThinYeh", 102],
        ["VerticalTail", 103],
        ["KashmiriYeh", 104],
        ["ThinNoon", 105]
    ]);

    static getAllEntries() {
        return JoiningGroup.#values.entries();
    }

    #internalConstructor(value) {
        if (arguments.length > 1 && arguments[0] === diplomatRuntime.internalConstructor) {
            // We pass in two internalConstructor arguments to create *new*
            // instances of this type, otherwise the enums are treated as singletons.
            if (arguments[1] === diplomatRuntime.internalConstructor ) {
                this.#value = arguments[2];
                return this;
            }
            return JoiningGroup.#objectValues[arguments[1]];
        }

        if (value instanceof JoiningGroup) {
            return value;
        }

        let intVal = JoiningGroup.#values.get(value);

        // Nullish check, checks for null or undefined
        if (intVal != null) {
            return JoiningGroup.#objectValues[intVal];
        }

        throw TypeError(value + " is not a JoiningGroup and does not correspond to any of its enumerator values.");
    }

    /** @internal */
    static fromValue(value) {
        return new JoiningGroup(value);
    }

    get value(){
        return [...JoiningGroup.#values.keys()][this.#value];
    }

    /** @internal */
    get ffiValue(){
        return this.#value;
    }
    static #objectValues = [
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 0),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 1),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 2),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 3),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 4),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 5),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 6),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 7),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 8),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 9),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 10),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 11),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 12),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 13),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 14),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 15),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 16),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 17),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 18),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 19),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 20),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 21),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 22),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 23),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 24),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 25),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 26),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 27),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 28),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 29),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 30),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 31),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 32),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 33),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 34),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 35),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 36),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 37),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 38),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 39),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 40),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 41),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 42),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 43),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 44),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 45),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 46),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 47),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 48),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 49),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 50),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 51),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 52),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 53),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 54),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 55),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 56),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 57),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 58),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 59),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 60),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 61),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 62),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 63),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 64),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 65),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 66),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 67),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 68),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 69),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 70),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 71),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 72),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 73),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 74),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 75),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 76),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 77),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 78),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 79),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 80),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 81),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 82),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 83),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 84),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 85),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 86),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 87),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 88),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 89),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 90),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 91),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 92),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 93),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 94),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 95),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 96),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 97),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 98),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 99),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 100),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 101),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 102),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 103),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 104),
        new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.internalConstructor, 105),
    ];

    /**
     * See the [Rust documentation for `NoJoiningGroup`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.NoJoiningGroup) for more information.
     */
    static NoJoiningGroup = JoiningGroup.#objectValues[0];
    /**
     * See the [Rust documentation for `Ain`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Ain) for more information.
     */
    static Ain = JoiningGroup.#objectValues[1];
    /**
     * See the [Rust documentation for `Alaph`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Alaph) for more information.
     */
    static Alaph = JoiningGroup.#objectValues[2];
    /**
     * See the [Rust documentation for `Alef`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Alef) for more information.
     */
    static Alef = JoiningGroup.#objectValues[3];
    /**
     * See the [Rust documentation for `Beh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Beh) for more information.
     */
    static Beh = JoiningGroup.#objectValues[4];
    /**
     * See the [Rust documentation for `Beth`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Beth) for more information.
     */
    static Beth = JoiningGroup.#objectValues[5];
    /**
     * See the [Rust documentation for `Dal`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Dal) for more information.
     */
    static Dal = JoiningGroup.#objectValues[6];
    /**
     * See the [Rust documentation for `DalathRish`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.DalathRish) for more information.
     */
    static DalathRish = JoiningGroup.#objectValues[7];
    /**
     * See the [Rust documentation for `E`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.E) for more information.
     */
    static E = JoiningGroup.#objectValues[8];
    /**
     * See the [Rust documentation for `Feh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Feh) for more information.
     */
    static Feh = JoiningGroup.#objectValues[9];
    /**
     * See the [Rust documentation for `FinalSemkath`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.FinalSemkath) for more information.
     */
    static FinalSemkath = JoiningGroup.#objectValues[10];
    /**
     * See the [Rust documentation for `Gaf`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Gaf) for more information.
     */
    static Gaf = JoiningGroup.#objectValues[11];
    /**
     * See the [Rust documentation for `Gamal`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Gamal) for more information.
     */
    static Gamal = JoiningGroup.#objectValues[12];
    /**
     * See the [Rust documentation for `Hah`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Hah) for more information.
     */
    static Hah = JoiningGroup.#objectValues[13];
    /**
     * See the [Rust documentation for `TehMarbutaGoal`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.TehMarbutaGoal) for more information.
     */
    static TehMarbutaGoal = JoiningGroup.#objectValues[14];
    /**
     * See the [Rust documentation for `He`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.He) for more information.
     */
    static He = JoiningGroup.#objectValues[15];
    /**
     * See the [Rust documentation for `Heh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Heh) for more information.
     */
    static Heh = JoiningGroup.#objectValues[16];
    /**
     * See the [Rust documentation for `HehGoal`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.HehGoal) for more information.
     */
    static HehGoal = JoiningGroup.#objectValues[17];
    /**
     * See the [Rust documentation for `Heth`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Heth) for more information.
     */
    static Heth = JoiningGroup.#objectValues[18];
    /**
     * See the [Rust documentation for `Kaf`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Kaf) for more information.
     */
    static Kaf = JoiningGroup.#objectValues[19];
    /**
     * See the [Rust documentation for `Kaph`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Kaph) for more information.
     */
    static Kaph = JoiningGroup.#objectValues[20];
    /**
     * See the [Rust documentation for `KnottedHeh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.KnottedHeh) for more information.
     */
    static KnottedHeh = JoiningGroup.#objectValues[21];
    /**
     * See the [Rust documentation for `Lam`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Lam) for more information.
     */
    static Lam = JoiningGroup.#objectValues[22];
    /**
     * See the [Rust documentation for `Lamadh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Lamadh) for more information.
     */
    static Lamadh = JoiningGroup.#objectValues[23];
    /**
     * See the [Rust documentation for `Meem`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Meem) for more information.
     */
    static Meem = JoiningGroup.#objectValues[24];
    /**
     * See the [Rust documentation for `Mim`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Mim) for more information.
     */
    static Mim = JoiningGroup.#objectValues[25];
    /**
     * See the [Rust documentation for `Noon`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Noon) for more information.
     */
    static Noon = JoiningGroup.#objectValues[26];
    /**
     * See the [Rust documentation for `Nun`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Nun) for more information.
     */
    static Nun = JoiningGroup.#objectValues[27];
    /**
     * See the [Rust documentation for `Pe`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Pe) for more information.
     */
    static Pe = JoiningGroup.#objectValues[28];
    /**
     * See the [Rust documentation for `Qaf`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Qaf) for more information.
     */
    static Qaf = JoiningGroup.#objectValues[29];
    /**
     * See the [Rust documentation for `Qaph`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Qaph) for more information.
     */
    static Qaph = JoiningGroup.#objectValues[30];
    /**
     * See the [Rust documentation for `Reh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Reh) for more information.
     */
    static Reh = JoiningGroup.#objectValues[31];
    /**
     * See the [Rust documentation for `ReversedPe`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ReversedPe) for more information.
     */
    static ReversedPe = JoiningGroup.#objectValues[32];
    /**
     * See the [Rust documentation for `Sad`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Sad) for more information.
     */
    static Sad = JoiningGroup.#objectValues[33];
    /**
     * See the [Rust documentation for `Sadhe`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Sadhe) for more information.
     */
    static Sadhe = JoiningGroup.#objectValues[34];
    /**
     * See the [Rust documentation for `Seen`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Seen) for more information.
     */
    static Seen = JoiningGroup.#objectValues[35];
    /**
     * See the [Rust documentation for `Semkath`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Semkath) for more information.
     */
    static Semkath = JoiningGroup.#objectValues[36];
    /**
     * See the [Rust documentation for `Shin`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Shin) for more information.
     */
    static Shin = JoiningGroup.#objectValues[37];
    /**
     * See the [Rust documentation for `SwashKaf`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.SwashKaf) for more information.
     */
    static SwashKaf = JoiningGroup.#objectValues[38];
    /**
     * See the [Rust documentation for `SyriacWaw`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.SyriacWaw) for more information.
     */
    static SyriacWaw = JoiningGroup.#objectValues[39];
    /**
     * See the [Rust documentation for `Tah`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Tah) for more information.
     */
    static Tah = JoiningGroup.#objectValues[40];
    /**
     * See the [Rust documentation for `Taw`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Taw) for more information.
     */
    static Taw = JoiningGroup.#objectValues[41];
    /**
     * See the [Rust documentation for `TehMarbuta`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.TehMarbuta) for more information.
     */
    static TehMarbuta = JoiningGroup.#objectValues[42];
    /**
     * See the [Rust documentation for `Teth`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Teth) for more information.
     */
    static Teth = JoiningGroup.#objectValues[43];
    /**
     * See the [Rust documentation for `Waw`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Waw) for more information.
     */
    static Waw = JoiningGroup.#objectValues[44];
    /**
     * See the [Rust documentation for `Yeh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Yeh) for more information.
     */
    static Yeh = JoiningGroup.#objectValues[45];
    /**
     * See the [Rust documentation for `YehBarree`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.YehBarree) for more information.
     */
    static YehBarree = JoiningGroup.#objectValues[46];
    /**
     * See the [Rust documentation for `YehWithTail`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.YehWithTail) for more information.
     */
    static YehWithTail = JoiningGroup.#objectValues[47];
    /**
     * See the [Rust documentation for `Yudh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Yudh) for more information.
     */
    static Yudh = JoiningGroup.#objectValues[48];
    /**
     * See the [Rust documentation for `YudhHe`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.YudhHe) for more information.
     */
    static YudhHe = JoiningGroup.#objectValues[49];
    /**
     * See the [Rust documentation for `Zain`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Zain) for more information.
     */
    static Zain = JoiningGroup.#objectValues[50];
    /**
     * See the [Rust documentation for `Fe`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Fe) for more information.
     */
    static Fe = JoiningGroup.#objectValues[51];
    /**
     * See the [Rust documentation for `Khaph`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Khaph) for more information.
     */
    static Khaph = JoiningGroup.#objectValues[52];
    /**
     * See the [Rust documentation for `Zhain`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Zhain) for more information.
     */
    static Zhain = JoiningGroup.#objectValues[53];
    /**
     * See the [Rust documentation for `BurushaskiYehBarree`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.BurushaskiYehBarree) for more information.
     */
    static BurushaskiYehBarree = JoiningGroup.#objectValues[54];
    /**
     * See the [Rust documentation for `FarsiYeh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.FarsiYeh) for more information.
     */
    static FarsiYeh = JoiningGroup.#objectValues[55];
    /**
     * See the [Rust documentation for `Nya`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.Nya) for more information.
     */
    static Nya = JoiningGroup.#objectValues[56];
    /**
     * See the [Rust documentation for `RohingyaYeh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.RohingyaYeh) for more information.
     */
    static RohingyaYeh = JoiningGroup.#objectValues[57];
    /**
     * See the [Rust documentation for `ManichaeanAleph`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanAleph) for more information.
     */
    static ManichaeanAleph = JoiningGroup.#objectValues[58];
    /**
     * See the [Rust documentation for `ManichaeanAyin`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanAyin) for more information.
     */
    static ManichaeanAyin = JoiningGroup.#objectValues[59];
    /**
     * See the [Rust documentation for `ManichaeanBeth`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanBeth) for more information.
     */
    static ManichaeanBeth = JoiningGroup.#objectValues[60];
    /**
     * See the [Rust documentation for `ManichaeanDaleth`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanDaleth) for more information.
     */
    static ManichaeanDaleth = JoiningGroup.#objectValues[61];
    /**
     * See the [Rust documentation for `ManichaeanDhamedh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanDhamedh) for more information.
     */
    static ManichaeanDhamedh = JoiningGroup.#objectValues[62];
    /**
     * See the [Rust documentation for `ManichaeanFive`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanFive) for more information.
     */
    static ManichaeanFive = JoiningGroup.#objectValues[63];
    /**
     * See the [Rust documentation for `ManichaeanGimel`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanGimel) for more information.
     */
    static ManichaeanGimel = JoiningGroup.#objectValues[64];
    /**
     * See the [Rust documentation for `ManichaeanHeth`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanHeth) for more information.
     */
    static ManichaeanHeth = JoiningGroup.#objectValues[65];
    /**
     * See the [Rust documentation for `ManichaeanHundred`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanHundred) for more information.
     */
    static ManichaeanHundred = JoiningGroup.#objectValues[66];
    /**
     * See the [Rust documentation for `ManichaeanKaph`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanKaph) for more information.
     */
    static ManichaeanKaph = JoiningGroup.#objectValues[67];
    /**
     * See the [Rust documentation for `ManichaeanLamedh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanLamedh) for more information.
     */
    static ManichaeanLamedh = JoiningGroup.#objectValues[68];
    /**
     * See the [Rust documentation for `ManichaeanMem`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanMem) for more information.
     */
    static ManichaeanMem = JoiningGroup.#objectValues[69];
    /**
     * See the [Rust documentation for `ManichaeanNun`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanNun) for more information.
     */
    static ManichaeanNun = JoiningGroup.#objectValues[70];
    /**
     * See the [Rust documentation for `ManichaeanOne`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanOne) for more information.
     */
    static ManichaeanOne = JoiningGroup.#objectValues[71];
    /**
     * See the [Rust documentation for `ManichaeanPe`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanPe) for more information.
     */
    static ManichaeanPe = JoiningGroup.#objectValues[72];
    /**
     * See the [Rust documentation for `ManichaeanQoph`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanQoph) for more information.
     */
    static ManichaeanQoph = JoiningGroup.#objectValues[73];
    /**
     * See the [Rust documentation for `ManichaeanResh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanResh) for more information.
     */
    static ManichaeanResh = JoiningGroup.#objectValues[74];
    /**
     * See the [Rust documentation for `ManichaeanSadhe`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanSadhe) for more information.
     */
    static ManichaeanSadhe = JoiningGroup.#objectValues[75];
    /**
     * See the [Rust documentation for `ManichaeanSamekh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanSamekh) for more information.
     */
    static ManichaeanSamekh = JoiningGroup.#objectValues[76];
    /**
     * See the [Rust documentation for `ManichaeanTaw`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanTaw) for more information.
     */
    static ManichaeanTaw = JoiningGroup.#objectValues[77];
    /**
     * See the [Rust documentation for `ManichaeanTen`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanTen) for more information.
     */
    static ManichaeanTen = JoiningGroup.#objectValues[78];
    /**
     * See the [Rust documentation for `ManichaeanTeth`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanTeth) for more information.
     */
    static ManichaeanTeth = JoiningGroup.#objectValues[79];
    /**
     * See the [Rust documentation for `ManichaeanThamedh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanThamedh) for more information.
     */
    static ManichaeanThamedh = JoiningGroup.#objectValues[80];
    /**
     * See the [Rust documentation for `ManichaeanTwenty`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanTwenty) for more information.
     */
    static ManichaeanTwenty = JoiningGroup.#objectValues[81];
    /**
     * See the [Rust documentation for `ManichaeanWaw`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanWaw) for more information.
     */
    static ManichaeanWaw = JoiningGroup.#objectValues[82];
    /**
     * See the [Rust documentation for `ManichaeanYodh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanYodh) for more information.
     */
    static ManichaeanYodh = JoiningGroup.#objectValues[83];
    /**
     * See the [Rust documentation for `ManichaeanZayin`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ManichaeanZayin) for more information.
     */
    static ManichaeanZayin = JoiningGroup.#objectValues[84];
    /**
     * See the [Rust documentation for `StraightWaw`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.StraightWaw) for more information.
     */
    static StraightWaw = JoiningGroup.#objectValues[85];
    /**
     * See the [Rust documentation for `AfricanFeh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.AfricanFeh) for more information.
     */
    static AfricanFeh = JoiningGroup.#objectValues[86];
    /**
     * See the [Rust documentation for `AfricanNoon`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.AfricanNoon) for more information.
     */
    static AfricanNoon = JoiningGroup.#objectValues[87];
    /**
     * See the [Rust documentation for `AfricanQaf`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.AfricanQaf) for more information.
     */
    static AfricanQaf = JoiningGroup.#objectValues[88];
    /**
     * See the [Rust documentation for `MalayalamBha`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamBha) for more information.
     */
    static MalayalamBha = JoiningGroup.#objectValues[89];
    /**
     * See the [Rust documentation for `MalayalamJa`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamJa) for more information.
     */
    static MalayalamJa = JoiningGroup.#objectValues[90];
    /**
     * See the [Rust documentation for `MalayalamLla`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamLla) for more information.
     */
    static MalayalamLla = JoiningGroup.#objectValues[91];
    /**
     * See the [Rust documentation for `MalayalamLlla`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamLlla) for more information.
     */
    static MalayalamLlla = JoiningGroup.#objectValues[92];
    /**
     * See the [Rust documentation for `MalayalamNga`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamNga) for more information.
     */
    static MalayalamNga = JoiningGroup.#objectValues[93];
    /**
     * See the [Rust documentation for `MalayalamNna`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamNna) for more information.
     */
    static MalayalamNna = JoiningGroup.#objectValues[94];
    /**
     * See the [Rust documentation for `MalayalamNnna`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamNnna) for more information.
     */
    static MalayalamNnna = JoiningGroup.#objectValues[95];
    /**
     * See the [Rust documentation for `MalayalamNya`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamNya) for more information.
     */
    static MalayalamNya = JoiningGroup.#objectValues[96];
    /**
     * See the [Rust documentation for `MalayalamRa`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamRa) for more information.
     */
    static MalayalamRa = JoiningGroup.#objectValues[97];
    /**
     * See the [Rust documentation for `MalayalamSsa`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamSsa) for more information.
     */
    static MalayalamSsa = JoiningGroup.#objectValues[98];
    /**
     * See the [Rust documentation for `MalayalamTta`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.MalayalamTta) for more information.
     */
    static MalayalamTta = JoiningGroup.#objectValues[99];
    /**
     * See the [Rust documentation for `HanifiRohingyaKinnaYa`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.HanifiRohingyaKinnaYa) for more information.
     */
    static HanifiRohingyaKinnaYa = JoiningGroup.#objectValues[100];
    /**
     * See the [Rust documentation for `HanifiRohingyaPa`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.HanifiRohingyaPa) for more information.
     */
    static HanifiRohingyaPa = JoiningGroup.#objectValues[101];
    /**
     * See the [Rust documentation for `ThinYeh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ThinYeh) for more information.
     */
    static ThinYeh = JoiningGroup.#objectValues[102];
    /**
     * See the [Rust documentation for `VerticalTail`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.VerticalTail) for more information.
     */
    static VerticalTail = JoiningGroup.#objectValues[103];
    /**
     * See the [Rust documentation for `KashmiriYeh`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.KashmiriYeh) for more information.
     */
    static KashmiriYeh = JoiningGroup.#objectValues[104];
    /**
     * See the [Rust documentation for `ThinNoon`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#associatedconstant.ThinNoon) for more information.
     */
    static ThinNoon = JoiningGroup.#objectValues[105];


    /**
     * See the [Rust documentation for `for_char`](https://docs.rs/icu/2.2.0/icu/properties/props/trait.EnumeratedProperty.html#tymethod.for_char) for more information.
     */
    static forChar(ch) {

        const result = wasm.icu4x_JoiningGroup_for_char_mv1(ch);

        try {
            return new JoiningGroup(diplomatRuntime.internalConstructor, result);
        }

        finally {
            diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
        }
    }

    /**
     * Get the "long" name of this property value (returns empty if property value is unknown)
     *
     * See the [Rust documentation for `get`](https://docs.rs/icu/2.2.0/icu/properties/struct.PropertyNamesLongBorrowed.html#method.get) for more information.
     */
    longName() {
        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);


        const result = wasm.icu4x_JoiningGroup_long_name_mv1(diplomatReceive.buffer, this.ffiValue);

        try {
            if (!diplomatReceive.resultFlag) {
                return null;
            }
            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
        }

        finally {
            diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
            diplomatReceive.free();
        }
    }

    /**
     * Get the "short" name of this property value (returns empty if property value is unknown)
     *
     * See the [Rust documentation for `get`](https://docs.rs/icu/2.2.0/icu/properties/struct.PropertyNamesShortBorrowed.html#method.get) for more information.
     */
    shortName() {
        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 9, 4, true);


        const result = wasm.icu4x_JoiningGroup_short_name_mv1(diplomatReceive.buffer, this.ffiValue);

        try {
            if (!diplomatReceive.resultFlag) {
                return null;
            }
            return new diplomatRuntime.DiplomatSliceStr(wasm, diplomatReceive.buffer,  "string8", []).getValue();
        }

        finally {
            diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
            diplomatReceive.free();
        }
    }

    /**
     * Convert to an integer value usable with ICU4C and `CodePointMapData`
     *
     * See the [Rust documentation for `to_icu4c_value`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#method.to_icu4c_value) for more information.
     */
    toIntegerValue() {

        const result = wasm.icu4x_JoiningGroup_to_integer_value_mv1(this.ffiValue);

        try {
            return result;
        }

        finally {
            diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
        }
    }

    /**
     * Convert from an integer value from ICU4C or `CodePointMapData`
     *
     * See the [Rust documentation for `from_icu4c_value`](https://docs.rs/icu/2.2.0/icu/properties/props/struct.JoiningGroup.html#method.from_icu4c_value) for more information.
     */
    static fromIntegerValue(other) {
        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);


        const result = wasm.icu4x_JoiningGroup_from_integer_value_mv1(diplomatReceive.buffer, other);

        try {
            if (!diplomatReceive.resultFlag) {
                return null;
            }
            return new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
        }

        finally {
            diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
            diplomatReceive.free();
        }
    }

    static tryFromStr(s) {
        let functionCleanupArena = new diplomatRuntime.CleanupArena();

        const sSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, s)));
        const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);


        const result = wasm.icu4x_JoiningGroup_try_from_str_mv1(diplomatReceive.buffer, sSlice.ptr);

        try {
            if (!diplomatReceive.resultFlag) {
                return null;
            }
            return new JoiningGroup(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
        }

        finally {
            diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
            functionCleanupArena.free();

            diplomatReceive.free();
        }
    }

    constructor(value) {
        return this.#internalConstructor(...arguments)
    }
}