1// automatically generated by the FlatBuffers compiler, do not modify 2/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any, @typescript-eslint/no-non-null-assertion */ 3import * as flatbuffers from 'flatbuffers'; 4import { Enum } from '../reflection/enum.js'; 5import { Object_ } from '../reflection/object.js'; 6import { SchemaFile } from '../reflection/schema-file.js'; 7import { Service } from '../reflection/service.js'; 8export class Schema { 9 constructor() { 10 this.bb = null; 11 this.bb_pos = 0; 12 } 13 __init(i, bb) { 14 this.bb_pos = i; 15 this.bb = bb; 16 return this; 17 } 18 static getRootAsSchema(bb, obj) { 19 return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); 20 } 21 static getSizePrefixedRootAsSchema(bb, obj) { 22 bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); 23 return (obj || new Schema()).__init(bb.readInt32(bb.position()) + bb.position(), bb); 24 } 25 static bufferHasIdentifier(bb) { 26 return bb.__has_identifier('BFBS'); 27 } 28 objects(index, obj) { 29 const offset = this.bb.__offset(this.bb_pos, 4); 30 return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; 31 } 32 objectsLength() { 33 const offset = this.bb.__offset(this.bb_pos, 4); 34 return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; 35 } 36 enums(index, obj) { 37 const offset = this.bb.__offset(this.bb_pos, 6); 38 return offset ? (obj || new Enum()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; 39 } 40 enumsLength() { 41 const offset = this.bb.__offset(this.bb_pos, 6); 42 return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; 43 } 44 fileIdent(optionalEncoding) { 45 const offset = this.bb.__offset(this.bb_pos, 8); 46 return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; 47 } 48 fileExt(optionalEncoding) { 49 const offset = this.bb.__offset(this.bb_pos, 10); 50 return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null; 51 } 52 rootTable(obj) { 53 const offset = this.bb.__offset(this.bb_pos, 12); 54 return offset ? (obj || new Object_()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; 55 } 56 services(index, obj) { 57 const offset = this.bb.__offset(this.bb_pos, 14); 58 return offset ? (obj || new Service()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; 59 } 60 servicesLength() { 61 const offset = this.bb.__offset(this.bb_pos, 14); 62 return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; 63 } 64 advancedFeatures() { 65 const offset = this.bb.__offset(this.bb_pos, 16); 66 return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0'); 67 } 68 mutate_advanced_features(value) { 69 const offset = this.bb.__offset(this.bb_pos, 16); 70 if (offset === 0) { 71 return false; 72 } 73 this.bb.writeUint64(this.bb_pos + offset, value); 74 return true; 75 } 76 /** 77 * All the files used in this compilation. Files are relative to where 78 * flatc was invoked. 79 */ 80 fbsFiles(index, obj) { 81 const offset = this.bb.__offset(this.bb_pos, 18); 82 return offset ? (obj || new SchemaFile()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; 83 } 84 fbsFilesLength() { 85 const offset = this.bb.__offset(this.bb_pos, 18); 86 return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0; 87 } 88 static getFullyQualifiedName() { 89 return 'reflection.Schema'; 90 } 91 static startSchema(builder) { 92 builder.startObject(8); 93 } 94 static addObjects(builder, objectsOffset) { 95 builder.addFieldOffset(0, objectsOffset, 0); 96 } 97 static createObjectsVector(builder, data) { 98 builder.startVector(4, data.length, 4); 99 for (let i = data.length - 1; i >= 0; i--) { 100 builder.addOffset(data[i]); 101 } 102 return builder.endVector(); 103 } 104 static startObjectsVector(builder, numElems) { 105 builder.startVector(4, numElems, 4); 106 } 107 static addEnums(builder, enumsOffset) { 108 builder.addFieldOffset(1, enumsOffset, 0); 109 } 110 static createEnumsVector(builder, data) { 111 builder.startVector(4, data.length, 4); 112 for (let i = data.length - 1; i >= 0; i--) { 113 builder.addOffset(data[i]); 114 } 115 return builder.endVector(); 116 } 117 static startEnumsVector(builder, numElems) { 118 builder.startVector(4, numElems, 4); 119 } 120 static addFileIdent(builder, fileIdentOffset) { 121 builder.addFieldOffset(2, fileIdentOffset, 0); 122 } 123 static addFileExt(builder, fileExtOffset) { 124 builder.addFieldOffset(3, fileExtOffset, 0); 125 } 126 static addRootTable(builder, rootTableOffset) { 127 builder.addFieldOffset(4, rootTableOffset, 0); 128 } 129 static addServices(builder, servicesOffset) { 130 builder.addFieldOffset(5, servicesOffset, 0); 131 } 132 static createServicesVector(builder, data) { 133 builder.startVector(4, data.length, 4); 134 for (let i = data.length - 1; i >= 0; i--) { 135 builder.addOffset(data[i]); 136 } 137 return builder.endVector(); 138 } 139 static startServicesVector(builder, numElems) { 140 builder.startVector(4, numElems, 4); 141 } 142 static addAdvancedFeatures(builder, advancedFeatures) { 143 builder.addFieldInt64(6, advancedFeatures, BigInt('0')); 144 } 145 static addFbsFiles(builder, fbsFilesOffset) { 146 builder.addFieldOffset(7, fbsFilesOffset, 0); 147 } 148 static createFbsFilesVector(builder, data) { 149 builder.startVector(4, data.length, 4); 150 for (let i = data.length - 1; i >= 0; i--) { 151 builder.addOffset(data[i]); 152 } 153 return builder.endVector(); 154 } 155 static startFbsFilesVector(builder, numElems) { 156 builder.startVector(4, numElems, 4); 157 } 158 static endSchema(builder) { 159 const offset = builder.endObject(); 160 builder.requiredField(offset, 4); // objects 161 builder.requiredField(offset, 6); // enums 162 return offset; 163 } 164 static finishSchemaBuffer(builder, offset) { 165 builder.finish(offset, 'BFBS'); 166 } 167 static finishSizePrefixedSchemaBuffer(builder, offset) { 168 builder.finish(offset, 'BFBS', true); 169 } 170 unpack() { 171 return new SchemaT(this.bb.createObjList(this.objects.bind(this), this.objectsLength()), this.bb.createObjList(this.enums.bind(this), this.enumsLength()), this.fileIdent(), this.fileExt(), (this.rootTable() !== null ? this.rootTable().unpack() : null), this.bb.createObjList(this.services.bind(this), this.servicesLength()), this.advancedFeatures(), this.bb.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength())); 172 } 173 unpackTo(_o) { 174 _o.objects = this.bb.createObjList(this.objects.bind(this), this.objectsLength()); 175 _o.enums = this.bb.createObjList(this.enums.bind(this), this.enumsLength()); 176 _o.fileIdent = this.fileIdent(); 177 _o.fileExt = this.fileExt(); 178 _o.rootTable = (this.rootTable() !== null ? this.rootTable().unpack() : null); 179 _o.services = this.bb.createObjList(this.services.bind(this), this.servicesLength()); 180 _o.advancedFeatures = this.advancedFeatures(); 181 _o.fbsFiles = this.bb.createObjList(this.fbsFiles.bind(this), this.fbsFilesLength()); 182 } 183} 184export class SchemaT { 185 constructor(objects = [], enums = [], fileIdent = null, fileExt = null, rootTable = null, services = [], advancedFeatures = BigInt('0'), fbsFiles = []) { 186 this.objects = objects; 187 this.enums = enums; 188 this.fileIdent = fileIdent; 189 this.fileExt = fileExt; 190 this.rootTable = rootTable; 191 this.services = services; 192 this.advancedFeatures = advancedFeatures; 193 this.fbsFiles = fbsFiles; 194 } 195 pack(builder) { 196 const objects = Schema.createObjectsVector(builder, builder.createObjectOffsetList(this.objects)); 197 const enums = Schema.createEnumsVector(builder, builder.createObjectOffsetList(this.enums)); 198 const fileIdent = (this.fileIdent !== null ? builder.createString(this.fileIdent) : 0); 199 const fileExt = (this.fileExt !== null ? builder.createString(this.fileExt) : 0); 200 const rootTable = (this.rootTable !== null ? this.rootTable.pack(builder) : 0); 201 const services = Schema.createServicesVector(builder, builder.createObjectOffsetList(this.services)); 202 const fbsFiles = Schema.createFbsFilesVector(builder, builder.createObjectOffsetList(this.fbsFiles)); 203 Schema.startSchema(builder); 204 Schema.addObjects(builder, objects); 205 Schema.addEnums(builder, enums); 206 Schema.addFileIdent(builder, fileIdent); 207 Schema.addFileExt(builder, fileExt); 208 Schema.addRootTable(builder, rootTable); 209 Schema.addServices(builder, services); 210 Schema.addAdvancedFeatures(builder, this.advancedFeatures); 211 Schema.addFbsFiles(builder, fbsFiles); 212 return Schema.endSchema(builder); 213 } 214} 215