• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// automatically generated by the FlatBuffers compiler, do not modify
2
3/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */
4
5import { Attacker, AttackerT } from './attacker.js';
6import { BookReader, BookReaderT } from './book-reader.js';
7import { Rapunzel, RapunzelT } from './rapunzel.js';
8
9
10export enum Character {
11  NONE = 0,
12  MuLan = 1,
13  Rapunzel = 2,
14  Belle = 3,
15  BookFan = 4,
16  Other = 5,
17  Unused = 6
18}
19
20export function unionToCharacter(
21  type: Character,
22  accessor: (obj:Attacker|BookReader|Rapunzel|string) => Attacker|BookReader|Rapunzel|string|null
23): Attacker|BookReader|Rapunzel|string|null {
24  switch(Character[type]) {
25    case 'NONE': return null;
26    case 'MuLan': return accessor(new Attacker())! as Attacker;
27    case 'Rapunzel': return accessor(new Rapunzel())! as Rapunzel;
28    case 'Belle': return accessor(new BookReader())! as BookReader;
29    case 'BookFan': return accessor(new BookReader())! as BookReader;
30    case 'Other': return accessor('') as string;
31    case 'Unused': return accessor('') as string;
32    default: return null;
33  }
34}
35
36export function unionListToCharacter(
37  type: Character,
38  accessor: (index: number, obj:Attacker|BookReader|Rapunzel|string) => Attacker|BookReader|Rapunzel|string|null,
39  index: number
40): Attacker|BookReader|Rapunzel|string|null {
41  switch(Character[type]) {
42    case 'NONE': return null;
43    case 'MuLan': return accessor(index, new Attacker())! as Attacker;
44    case 'Rapunzel': return accessor(index, new Rapunzel())! as Rapunzel;
45    case 'Belle': return accessor(index, new BookReader())! as BookReader;
46    case 'BookFan': return accessor(index, new BookReader())! as BookReader;
47    case 'Other': return accessor(index, '') as string;
48    case 'Unused': return accessor(index, '') as string;
49    default: return null;
50  }
51}
52