// automatically generated by the FlatBuffers compiler, do not modify import { DictionaryBatch } from './dictionary-batch.js'; import { RecordBatch } from './record-batch.js'; import { Schema } from './schema.js'; import { SparseTensor } from './sparse-tensor.js'; import { Tensor } from './tensor.js'; /** * ---------------------------------------------------------------------- * The root Message type * This union enables us to easily send different message types without * redundant storage, and in the future we can easily add new message types. * * Arrow implementations do not need to implement all of the message types, * which may include experimental metadata types. For maximum compatibility, * it is best to send data using RecordBatch */ export enum MessageHeader{ NONE = 0, Schema = 1, DictionaryBatch = 2, RecordBatch = 3, Tensor = 4, SparseTensor = 5 } export function unionToMessageHeader( type: MessageHeader, accessor: (obj:DictionaryBatch|RecordBatch|Schema|SparseTensor|Tensor) => DictionaryBatch|RecordBatch|Schema|SparseTensor|Tensor|null ): DictionaryBatch|RecordBatch|Schema|SparseTensor|Tensor|null { switch(MessageHeader[type]) { case 'NONE': return null; case 'Schema': return accessor(new Schema())! as Schema; case 'DictionaryBatch': return accessor(new DictionaryBatch())! as DictionaryBatch; case 'RecordBatch': return accessor(new RecordBatch())! as RecordBatch; case 'Tensor': return accessor(new Tensor())! as Tensor; case 'SparseTensor': return accessor(new SparseTensor())! as SparseTensor; default: return null; } } export function unionListToMessageHeader( type: MessageHeader, accessor: (index: number, obj:DictionaryBatch|RecordBatch|Schema|SparseTensor|Tensor) => DictionaryBatch|RecordBatch|Schema|SparseTensor|Tensor|null, index: number ): DictionaryBatch|RecordBatch|Schema|SparseTensor|Tensor|null { switch(MessageHeader[type]) { case 'NONE': return null; case 'Schema': return accessor(index, new Schema())! as Schema; case 'DictionaryBatch': return accessor(index, new DictionaryBatch())! as DictionaryBatch; case 'RecordBatch': return accessor(index, new RecordBatch())! as RecordBatch; case 'Tensor': return accessor(index, new Tensor())! as Tensor; case 'SparseTensor': return accessor(index, new SparseTensor())! as SparseTensor; default: return null; } }