James Kuszmaul | 8e62b02 | 2022-03-22 09:33:25 -0700 | [diff] [blame] | 1 | // automatically generated by the FlatBuffers compiler, do not modify |
| 2 | |
| 3 | import { FallingTub, FallingTubT } from './falling-tub'; |
| 4 | import { HandFan, HandFanT } from './hand-fan'; |
| 5 | |
| 6 | |
Austin Schuh | 2dd86a9 | 2022-09-14 21:19:23 -0700 | [diff] [blame] | 7 | export enum Gadget { |
James Kuszmaul | 8e62b02 | 2022-03-22 09:33:25 -0700 | [diff] [blame] | 8 | NONE = 0, |
| 9 | FallingTub = 1, |
| 10 | HandFan = 2 |
| 11 | } |
| 12 | |
| 13 | export function unionToGadget( |
| 14 | type: Gadget, |
| 15 | accessor: (obj:FallingTub|HandFan) => FallingTub|HandFan|null |
| 16 | ): FallingTub|HandFan|null { |
| 17 | switch(Gadget[type]) { |
| 18 | case 'NONE': return null; |
| 19 | case 'FallingTub': return accessor(new FallingTub())! as FallingTub; |
| 20 | case 'HandFan': return accessor(new HandFan())! as HandFan; |
| 21 | default: return null; |
| 22 | } |
| 23 | } |
| 24 | |
| 25 | export function unionListToGadget( |
| 26 | type: Gadget, |
| 27 | accessor: (index: number, obj:FallingTub|HandFan) => FallingTub|HandFan|null, |
| 28 | index: number |
| 29 | ): FallingTub|HandFan|null { |
| 30 | switch(Gadget[type]) { |
| 31 | case 'NONE': return null; |
| 32 | case 'FallingTub': return accessor(index, new FallingTub())! as FallingTub; |
| 33 | case 'HandFan': return accessor(index, new HandFan())! as HandFan; |
| 34 | default: return null; |
| 35 | } |
| 36 | } |