1// automatically generated by the FlatBuffers compiler, do not modify 2 3import * as flatbuffers from 'flatbuffers'; 4 5import { Attacker, AttackerT } from './attacker'; 6import { BookReader, BookReaderT } from './book-reader'; 7import { Character, unionToCharacter, unionListToCharacter } from './character'; 8import { Rapunzel, RapunzelT } from './rapunzel'; 9 10 11export class Movie { 12 bb: flatbuffers.ByteBuffer|null = null; 13 bb_pos = 0; 14__init(i:number, bb:flatbuffers.ByteBuffer):Movie { 15 this.bb_pos = i; 16 this.bb = bb; 17 return this; 18} 19 20static getRootAsMovie(bb:flatbuffers.ByteBuffer, obj?:Movie):Movie { 21 return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb); 22} 23 24static getSizePrefixedRootAsMovie(bb:flatbuffers.ByteBuffer, obj?:Movie):Movie { 25 bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH); 26 return (obj || new Movie()).__init(bb.readInt32(bb.position()) + bb.position(), bb); 27} 28 29static bufferHasIdentifier(bb:flatbuffers.ByteBuffer):boolean { 30 return bb.__has_identifier('MOVI'); 31} 32 33mainCharacterType():Character { 34 const offset = this.bb!.__offset(this.bb_pos, 4); 35 return offset ? this.bb!.readUint8(this.bb_pos + offset) : Character.NONE; 36} 37 38mainCharacter<T extends flatbuffers.Table>(obj:any|string):any|string|null { 39 const offset = this.bb!.__offset(this.bb_pos, 6); 40 return offset ? this.bb!.__union_with_string(obj, this.bb_pos + offset) : null; 41} 42 43charactersType(index: number):Character|null { 44 const offset = this.bb!.__offset(this.bb_pos, 8); 45 return offset ? this.bb!.readUint8(this.bb!.__vector(this.bb_pos + offset) + index) : 0; 46} 47 48charactersTypeLength():number { 49 const offset = this.bb!.__offset(this.bb_pos, 8); 50 return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; 51} 52 53charactersTypeArray():Uint8Array|null { 54 const offset = this.bb!.__offset(this.bb_pos, 8); 55 return offset ? new Uint8Array(this.bb!.bytes().buffer, this.bb!.bytes().byteOffset + this.bb!.__vector(this.bb_pos + offset), this.bb!.__vector_len(this.bb_pos + offset)) : null; 56} 57 58characters(index: number, obj:any|string):any|string|null { 59 const offset = this.bb!.__offset(this.bb_pos, 10); 60 return offset ? this.bb!.__union_with_string(obj, this.bb!.__vector(this.bb_pos + offset) + index * 4) : null; 61} 62 63charactersLength():number { 64 const offset = this.bb!.__offset(this.bb_pos, 10); 65 return offset ? this.bb!.__vector_len(this.bb_pos + offset) : 0; 66} 67 68static getFullyQualifiedName():string { 69 return 'Movie'; 70} 71 72static startMovie(builder:flatbuffers.Builder) { 73 builder.startObject(4); 74} 75 76static addMainCharacterType(builder:flatbuffers.Builder, mainCharacterType:Character) { 77 builder.addFieldInt8(0, mainCharacterType, Character.NONE); 78} 79 80static addMainCharacter(builder:flatbuffers.Builder, mainCharacterOffset:flatbuffers.Offset) { 81 builder.addFieldOffset(1, mainCharacterOffset, 0); 82} 83 84static addCharactersType(builder:flatbuffers.Builder, charactersTypeOffset:flatbuffers.Offset) { 85 builder.addFieldOffset(2, charactersTypeOffset, 0); 86} 87 88static createCharactersTypeVector(builder:flatbuffers.Builder, data:Character[]):flatbuffers.Offset { 89 builder.startVector(1, data.length, 1); 90 for (let i = data.length - 1; i >= 0; i--) { 91 builder.addInt8(data[i]!); 92 } 93 return builder.endVector(); 94} 95 96static startCharactersTypeVector(builder:flatbuffers.Builder, numElems:number) { 97 builder.startVector(1, numElems, 1); 98} 99 100static addCharacters(builder:flatbuffers.Builder, charactersOffset:flatbuffers.Offset) { 101 builder.addFieldOffset(3, charactersOffset, 0); 102} 103 104static createCharactersVector(builder:flatbuffers.Builder, data:flatbuffers.Offset[]):flatbuffers.Offset { 105 builder.startVector(4, data.length, 4); 106 for (let i = data.length - 1; i >= 0; i--) { 107 builder.addOffset(data[i]!); 108 } 109 return builder.endVector(); 110} 111 112static startCharactersVector(builder:flatbuffers.Builder, numElems:number) { 113 builder.startVector(4, numElems, 4); 114} 115 116static endMovie(builder:flatbuffers.Builder):flatbuffers.Offset { 117 const offset = builder.endObject(); 118 return offset; 119} 120 121static finishMovieBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { 122 builder.finish(offset, 'MOVI'); 123} 124 125static finishSizePrefixedMovieBuffer(builder:flatbuffers.Builder, offset:flatbuffers.Offset) { 126 builder.finish(offset, 'MOVI', true); 127} 128 129static createMovie(builder:flatbuffers.Builder, mainCharacterType:Character, mainCharacterOffset:flatbuffers.Offset, charactersTypeOffset:flatbuffers.Offset, charactersOffset:flatbuffers.Offset):flatbuffers.Offset { 130 Movie.startMovie(builder); 131 Movie.addMainCharacterType(builder, mainCharacterType); 132 Movie.addMainCharacter(builder, mainCharacterOffset); 133 Movie.addCharactersType(builder, charactersTypeOffset); 134 Movie.addCharacters(builder, charactersOffset); 135 return Movie.endMovie(builder); 136} 137 138unpack(): MovieT { 139 return new MovieT( 140 this.mainCharacterType(), 141 (() => { 142 let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this)); 143 if(temp === null) { return null; } 144 if(typeof temp === 'string') { return temp; } 145 return temp.unpack() 146 })(), 147 this.bb!.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()), 148 (() => { 149 let ret = []; 150 for(let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) { 151 let targetEnum = this.charactersType(targetEnumIndex); 152 if(targetEnum === null || Character[targetEnum!] === 'NONE') { continue; } 153 154 let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex); 155 if(temp === null) { continue; } 156 if(typeof temp === 'string') { ret.push(temp); continue; } 157 ret.push(temp.unpack()); 158 } 159 return ret; 160 })() 161 ); 162} 163 164 165unpackTo(_o: MovieT): void { 166 _o.mainCharacterType = this.mainCharacterType(); 167 _o.mainCharacter = (() => { 168 let temp = unionToCharacter(this.mainCharacterType(), this.mainCharacter.bind(this)); 169 if(temp === null) { return null; } 170 if(typeof temp === 'string') { return temp; } 171 return temp.unpack() 172 })(); 173 _o.charactersType = this.bb!.createScalarList(this.charactersType.bind(this), this.charactersTypeLength()); 174 _o.characters = (() => { 175 let ret = []; 176 for(let targetEnumIndex = 0; targetEnumIndex < this.charactersTypeLength(); ++targetEnumIndex) { 177 let targetEnum = this.charactersType(targetEnumIndex); 178 if(targetEnum === null || Character[targetEnum!] === 'NONE') { continue; } 179 180 let temp = unionListToCharacter(targetEnum, this.characters.bind(this), targetEnumIndex); 181 if(temp === null) { continue; } 182 if(typeof temp === 'string') { ret.push(temp); continue; } 183 ret.push(temp.unpack()); 184 } 185 return ret; 186 })(); 187} 188} 189 190export class MovieT { 191constructor( 192 public mainCharacterType: Character = Character.NONE, 193 public mainCharacter: AttackerT|BookReaderT|RapunzelT|string|null = null, 194 public charactersType: (Character)[] = [], 195 public characters: (AttackerT|BookReaderT|RapunzelT|string)[] = [] 196){} 197 198 199pack(builder:flatbuffers.Builder): flatbuffers.Offset { 200 const mainCharacter = builder.createObjectOffset(this.mainCharacter); 201 const charactersType = Movie.createCharactersTypeVector(builder, this.charactersType); 202 const characters = Movie.createCharactersVector(builder, builder.createObjectOffsetList(this.characters)); 203 204 return Movie.createMovie(builder, 205 this.mainCharacterType, 206 mainCharacter, 207 charactersType, 208 characters 209 ); 210} 211} 212