// automatically generated by the FlatBuffers compiler, do not modify
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
import { Attacker } from './attacker.js';
import { BookReader } from './book-reader.js';
import { Rapunzel } from './rapunzel.js';
export var Character;
(function (Character) {
    Character[Character["NONE"] = 0] = "NONE";
    Character[Character["MuLan"] = 1] = "MuLan";
    Character[Character["Rapunzel"] = 2] = "Rapunzel";
    Character[Character["Belle"] = 3] = "Belle";
    Character[Character["BookFan"] = 4] = "BookFan";
    Character[Character["Other"] = 5] = "Other";
    Character[Character["Unused"] = 6] = "Unused";
})(Character || (Character = {}));
export function unionToCharacter(type, accessor) {
    switch (Character[type]) {
        case 'NONE': return null;
        case 'MuLan': return accessor(new Attacker());
        case 'Rapunzel': return accessor(new Rapunzel());
        case 'Belle': return accessor(new BookReader());
        case 'BookFan': return accessor(new BookReader());
        case 'Other': return accessor('');
        case 'Unused': return accessor('');
        default: return null;
    }
}
export function unionListToCharacter(type, accessor, index) {
    switch (Character[type]) {
        case 'NONE': return null;
        case 'MuLan': return accessor(index, new Attacker());
        case 'Rapunzel': return accessor(index, new Rapunzel());
        case 'Belle': return accessor(index, new BookReader());
        case 'BookFan': return accessor(index, new BookReader());
        case 'Other': return accessor(index, '');
        case 'Unused': return accessor(index, '');
        default: return null;
    }
}
