// UE/DataTable.ts import { Name } from '#root/UE/Name.ts'; import type { UEArray } from '#root/UE/UEArray.ts'; import { UEObject } from '#root/UE/UEObject.ts'; export class DataTable extends UEObject { private rows: Map = new Map(); constructor( outer: UEObject | null = null, name: Name = Name.NONE, initialData: UEArray = [] as unknown as UEArray< T & { Name: Name } > ) { super(outer, name); initialData.forEach(row => { this.rows.set(row.Name, row); }); } public GetDataTableRow( rowName: Name, rowFound?: (row: T) => void, rowNotFound?: () => void ): void | T | undefined { const row = this.rows.get(rowName); if (!rowFound && !rowNotFound) { return row; } if (row) { rowFound?.(row); } else { rowNotFound?.(); } } }