xref: /aosp_15_r20/external/flatbuffers/tests/union_vector/gadget.ts (revision 890232f25432b36107d06881e0a25aaa6b473652)
1*890232f2SAndroid Build Coastguard Worker// automatically generated by the FlatBuffers compiler, do not modify
2*890232f2SAndroid Build Coastguard Worker
3*890232f2SAndroid Build Coastguard Workerimport { FallingTub, FallingTubT } from './falling-tub';
4*890232f2SAndroid Build Coastguard Workerimport { HandFan, HandFanT } from './hand-fan';
5*890232f2SAndroid Build Coastguard Worker
6*890232f2SAndroid Build Coastguard Worker
7*890232f2SAndroid Build Coastguard Workerexport enum Gadget {
8*890232f2SAndroid Build Coastguard Worker  NONE = 0,
9*890232f2SAndroid Build Coastguard Worker  FallingTub = 1,
10*890232f2SAndroid Build Coastguard Worker  HandFan = 2
11*890232f2SAndroid Build Coastguard Worker}
12*890232f2SAndroid Build Coastguard Worker
13*890232f2SAndroid Build Coastguard Workerexport function unionToGadget(
14*890232f2SAndroid Build Coastguard Worker  type: Gadget,
15*890232f2SAndroid Build Coastguard Worker  accessor: (obj:FallingTub|HandFan) => FallingTub|HandFan|null
16*890232f2SAndroid Build Coastguard Worker): FallingTub|HandFan|null {
17*890232f2SAndroid Build Coastguard Worker  switch(Gadget[type]) {
18*890232f2SAndroid Build Coastguard Worker    case 'NONE': return null;
19*890232f2SAndroid Build Coastguard Worker    case 'FallingTub': return accessor(new FallingTub())! as FallingTub;
20*890232f2SAndroid Build Coastguard Worker    case 'HandFan': return accessor(new HandFan())! as HandFan;
21*890232f2SAndroid Build Coastguard Worker    default: return null;
22*890232f2SAndroid Build Coastguard Worker  }
23*890232f2SAndroid Build Coastguard Worker}
24*890232f2SAndroid Build Coastguard Worker
25*890232f2SAndroid Build Coastguard Workerexport function unionListToGadget(
26*890232f2SAndroid Build Coastguard Worker  type: Gadget,
27*890232f2SAndroid Build Coastguard Worker  accessor: (index: number, obj:FallingTub|HandFan) => FallingTub|HandFan|null,
28*890232f2SAndroid Build Coastguard Worker  index: number
29*890232f2SAndroid Build Coastguard Worker): FallingTub|HandFan|null {
30*890232f2SAndroid Build Coastguard Worker  switch(Gadget[type]) {
31*890232f2SAndroid Build Coastguard Worker    case 'NONE': return null;
32*890232f2SAndroid Build Coastguard Worker    case 'FallingTub': return accessor(index, new FallingTub())! as FallingTub;
33*890232f2SAndroid Build Coastguard Worker    case 'HandFan': return accessor(index, new HandFan())! as HandFan;
34*890232f2SAndroid Build Coastguard Worker    default: return null;
35*890232f2SAndroid Build Coastguard Worker  }
36*890232f2SAndroid Build Coastguard Worker}
37