UNPKG

apache-arrow

Version:

Apache Arrow columnar in-memory format

75 lines (73 loc) 2.75 kB
// automatically generated by the FlatBuffers compiler, do not modify import * as flatbuffers from 'flatbuffers'; import { UnionMode } from './union-mode.mjs'; /** * A union is a complex type with children in Field * By default ids in the type vector refer to the offsets in the children * optionally typeIds provides an indirection between the child offset and the type id * for each child `typeIds[offset]` is the id used in the type vector */ export class Union { constructor() { this.bb = null; this.bb_pos = 0; } __init(i, bb) { this.bb_pos = i; this.bb = bb; return this; } static getRootAsUnion(bb, obj) { return (obj || new Union()).__init(bb.readInt32(bb.position()) + bb.position(), bb); } static getSizePrefixedRootAsUnion(bb, obj) { bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); return (obj || new Union()).__init(bb.readInt32(bb.position()) + bb.position(), bb); } mode() { const offset = this.bb.__offset(this.bb_pos, 4); return offset ? this.bb.readInt16(this.bb_pos + offset) : UnionMode.Sparse; } typeIds(index) { const offset = this.bb.__offset(this.bb_pos, 6); return offset ? this.bb.readInt32(this.bb.__vector(this.bb_pos + offset) + index * 4) : 0; } typeIdsLength() { const offset = this.bb.__offset(this.bb_pos, 6); return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; } typeIdsArray() { const offset = this.bb.__offset(this.bb_pos, 6); return offset ? new Int32Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null; } static startUnion(builder) { builder.startObject(2); } static addMode(builder, mode) { builder.addFieldInt16(0, mode, UnionMode.Sparse); } static addTypeIds(builder, typeIdsOffset) { builder.addFieldOffset(1, typeIdsOffset, 0); } static createTypeIdsVector(builder, data) { builder.startVector(4, data.length, 4); for (let i = data.length - 1; i >= 0; i--) { builder.addInt32(data[i]); } return builder.endVector(); } static startTypeIdsVector(builder, numElems) { builder.startVector(4, numElems, 4); } static endUnion(builder) { const offset = builder.endObject(); return offset; } static createUnion(builder, mode, typeIdsOffset) { Union.startUnion(builder); Union.addMode(builder, mode); Union.addTypeIds(builder, typeIdsOffset); return Union.endUnion(builder); } } //# sourceMappingURL=union.mjs.map