Files
gamestream-webtransport-proxy/frontend/src/lib/proto/input-event/input.ts
T

43 lines
1.5 KiB
TypeScript

// 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 { KeyboardInput } from '../input-event/keyboard-input.js';
import { MouseInput } from '../input-event/mouse-input.js';
import { MouseMovement } from '../input-event/mouse-movement.js';
export enum Input {
NONE = 0,
Keyboard = 1,
MouseMovement = 2,
MouseInput = 3
}
export function unionToInput(
type: Input,
accessor: (obj:KeyboardInput|MouseInput|MouseMovement) => KeyboardInput|MouseInput|MouseMovement|null
): KeyboardInput|MouseInput|MouseMovement|null {
switch(Input[type]) {
case 'NONE': return null;
case 'Keyboard': return accessor(new KeyboardInput())! as KeyboardInput;
case 'MouseMovement': return accessor(new MouseMovement())! as MouseMovement;
case 'MouseInput': return accessor(new MouseInput())! as MouseInput;
default: return null;
}
}
export function unionListToInput(
type: Input,
accessor: (index: number, obj:KeyboardInput|MouseInput|MouseMovement) => KeyboardInput|MouseInput|MouseMovement|null,
index: number
): KeyboardInput|MouseInput|MouseMovement|null {
switch(Input[type]) {
case 'NONE': return null;
case 'Keyboard': return accessor(index, new KeyboardInput())! as KeyboardInput;
case 'MouseMovement': return accessor(index, new MouseMovement())! as MouseMovement;
case 'MouseInput': return accessor(index, new MouseInput())! as MouseInput;
default: return null;
}
}