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