1 // automatically generated by the FlatBuffers compiler, do not modify 2 // swiftlint:disable all 3 // swiftformat:disable all 4 5 import FlatBuffers 6 7 public enum Character: UInt8, UnionEnum { 8 public typealias T = UInt8 9 10 public init?(value: T) { 11 self.init(rawValue: value) 12 } 13 14 public static var byteSize: Int { return MemoryLayout<UInt8>.size } 15 public var value: UInt8 { return self.rawValue } 16 case none_ = 0 17 case mulan = 1 18 case rapunzel = 2 19 case belle = 3 20 case bookfan = 4 21 case other = 5 22 case unused = 6 23 24 public static var max: Character { return .unused } 25 public static var min: Character { return .none_ } 26 } 27 28 extension Character: Encodable { encodenull29 public func encode(to encoder: Encoder) throws { 30 var container = encoder.singleValueContainer() 31 switch self { 32 case .none_: try container.encode("NONE") 33 case .mulan: try container.encode("MuLan") 34 case .rapunzel: try container.encode("Rapunzel") 35 case .belle: try container.encode("Belle") 36 case .bookfan: try container.encode("BookFan") 37 case .other: try container.encode("Other") 38 case .unused: try container.encode("Unused") 39 } 40 } 41 } 42 43 public struct CharacterUnion { 44 public var type: Character 45 public var value: NativeObject? 46 public init(_ v: NativeObject?, type: Character) { 47 self.type = type 48 self.value = v 49 } packnull50 public func pack(builder: inout FlatBufferBuilder) -> Offset { 51 switch type { 52 case .mulan: 53 var __obj = value as? AttackerT 54 return Attacker.pack(&builder, obj: &__obj) 55 case .rapunzel: 56 var __obj = value as? Rapunzel 57 return Rapunzel_Mutable.pack(&builder, obj: &__obj) 58 case .belle: 59 var __obj = value as? BookReader 60 return BookReader_Mutable.pack(&builder, obj: &__obj) 61 case .bookfan: 62 var __obj = value as? BookReader 63 return BookReader_Mutable.pack(&builder, obj: &__obj) 64 case .other: 65 var __obj = value as? String 66 return String.pack(&builder, obj: &__obj) 67 case .unused: 68 var __obj = value as? String 69 return String.pack(&builder, obj: &__obj) 70 default: return Offset() 71 } 72 } 73 } 74 public enum Gadget: UInt8, UnionEnum { 75 public typealias T = UInt8 76 77 public init?(value: T) { 78 self.init(rawValue: value) 79 } 80 81 public static var byteSize: Int { return MemoryLayout<UInt8>.size } 82 public var value: UInt8 { return self.rawValue } 83 case none_ = 0 84 case fallingtub = 1 85 case handfan = 2 86 87 public static var max: Gadget { return .handfan } 88 public static var min: Gadget { return .none_ } 89 } 90 91 extension Gadget: Encodable { encodenull92 public func encode(to encoder: Encoder) throws { 93 var container = encoder.singleValueContainer() 94 switch self { 95 case .none_: try container.encode("NONE") 96 case .fallingtub: try container.encode("FallingTub") 97 case .handfan: try container.encode("HandFan") 98 } 99 } 100 } 101 102 public struct GadgetUnion { 103 public var type: Gadget 104 public var value: NativeObject? 105 public init(_ v: NativeObject?, type: Gadget) { 106 self.type = type 107 self.value = v 108 } packnull109 public func pack(builder: inout FlatBufferBuilder) -> Offset { 110 switch type { 111 case .fallingtub: 112 var __obj = value as? FallingTub 113 return FallingTub_Mutable.pack(&builder, obj: &__obj) 114 case .handfan: 115 var __obj = value as? HandFanT 116 return HandFan.pack(&builder, obj: &__obj) 117 default: return Offset() 118 } 119 } 120 } 121 public struct Rapunzel: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { 122 validateVersionnull123 static func validateVersion() { FlatBuffersVersion_2_0_0() } 124 125 private var _hairLength: Int32 126 127 public init(_ bb: ByteBuffer, o: Int32) { 128 let _accessor = Struct(bb: bb, position: o) 129 _hairLength = _accessor.readBuffer(of: Int32.self, at: 0) 130 } 131 132 public init(hairLength: Int32) { 133 _hairLength = hairLength 134 } 135 136 public init() { 137 _hairLength = 0 138 } 139 140 public init(_ _t: inout Rapunzel_Mutable) { 141 _hairLength = _t.hairLength 142 } 143 144 public var hairLength: Int32 { _hairLength } 145 verify<T>null146 public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { 147 try verifier.inBuffer(position: position, of: Rapunzel.self) 148 } 149 } 150 151 extension Rapunzel: Encodable { 152 153 enum CodingKeys: String, CodingKey { 154 case hairLength = "hair_length" 155 } encodenull156 public func encode(to encoder: Encoder) throws { 157 var container = encoder.container(keyedBy: CodingKeys.self) 158 if hairLength != 0 { 159 try container.encodeIfPresent(hairLength, forKey: .hairLength) 160 } 161 } 162 } 163 164 public struct Rapunzel_Mutable: FlatBufferObject { 165 validateVersionnull166 static func validateVersion() { FlatBuffersVersion_2_0_0() } 167 public var __buffer: ByteBuffer! { return _accessor.bb } 168 private var _accessor: Struct 169 170 public init(_ bb: ByteBuffer, o: Int32) { _accessor = Struct(bb: bb, position: o) } 171 172 public var hairLength: Int32 { return _accessor.readBuffer(of: Int32.self, at: 0) } mutatenull173 @discardableResult public func mutate(hairLength: Int32) -> Bool { return _accessor.mutate(hairLength, index: 0) } 174 175 unpacknull176 public mutating func unpack() -> Rapunzel { 177 return Rapunzel(&self) 178 } packnull179 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout Rapunzel?) -> Offset { 180 guard var obj = obj else { return Offset() } 181 return pack(&builder, obj: &obj) 182 } 183 packnull184 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout Rapunzel) -> Offset { 185 return builder.create(struct: obj) 186 } 187 } 188 189 public struct BookReader: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { 190 validateVersionnull191 static func validateVersion() { FlatBuffersVersion_2_0_0() } 192 193 private var _booksRead: Int32 194 195 public init(_ bb: ByteBuffer, o: Int32) { 196 let _accessor = Struct(bb: bb, position: o) 197 _booksRead = _accessor.readBuffer(of: Int32.self, at: 0) 198 } 199 200 public init(booksRead: Int32) { 201 _booksRead = booksRead 202 } 203 204 public init() { 205 _booksRead = 0 206 } 207 208 public init(_ _t: inout BookReader_Mutable) { 209 _booksRead = _t.booksRead 210 } 211 212 public var booksRead: Int32 { _booksRead } 213 verify<T>null214 public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { 215 try verifier.inBuffer(position: position, of: BookReader.self) 216 } 217 } 218 219 extension BookReader: Encodable { 220 221 enum CodingKeys: String, CodingKey { 222 case booksRead = "books_read" 223 } encodenull224 public func encode(to encoder: Encoder) throws { 225 var container = encoder.container(keyedBy: CodingKeys.self) 226 if booksRead != 0 { 227 try container.encodeIfPresent(booksRead, forKey: .booksRead) 228 } 229 } 230 } 231 232 public struct BookReader_Mutable: FlatBufferObject { 233 validateVersionnull234 static func validateVersion() { FlatBuffersVersion_2_0_0() } 235 public var __buffer: ByteBuffer! { return _accessor.bb } 236 private var _accessor: Struct 237 238 public init(_ bb: ByteBuffer, o: Int32) { _accessor = Struct(bb: bb, position: o) } 239 240 public var booksRead: Int32 { return _accessor.readBuffer(of: Int32.self, at: 0) } mutatenull241 @discardableResult public func mutate(booksRead: Int32) -> Bool { return _accessor.mutate(booksRead, index: 0) } 242 243 unpacknull244 public mutating func unpack() -> BookReader { 245 return BookReader(&self) 246 } packnull247 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout BookReader?) -> Offset { 248 guard var obj = obj else { return Offset() } 249 return pack(&builder, obj: &obj) 250 } 251 packnull252 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout BookReader) -> Offset { 253 return builder.create(struct: obj) 254 } 255 } 256 257 public struct FallingTub: NativeStruct, Verifiable, FlatbuffersInitializable, NativeObject { 258 validateVersionnull259 static func validateVersion() { FlatBuffersVersion_2_0_0() } 260 261 private var _weight: Int32 262 263 public init(_ bb: ByteBuffer, o: Int32) { 264 let _accessor = Struct(bb: bb, position: o) 265 _weight = _accessor.readBuffer(of: Int32.self, at: 0) 266 } 267 268 public init(weight: Int32) { 269 _weight = weight 270 } 271 272 public init() { 273 _weight = 0 274 } 275 276 public init(_ _t: inout FallingTub_Mutable) { 277 _weight = _t.weight 278 } 279 280 public var weight: Int32 { _weight } 281 verify<T>null282 public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { 283 try verifier.inBuffer(position: position, of: FallingTub.self) 284 } 285 } 286 287 extension FallingTub: Encodable { 288 289 enum CodingKeys: String, CodingKey { 290 case weight = "weight" 291 } encodenull292 public func encode(to encoder: Encoder) throws { 293 var container = encoder.container(keyedBy: CodingKeys.self) 294 if weight != 0 { 295 try container.encodeIfPresent(weight, forKey: .weight) 296 } 297 } 298 } 299 300 public struct FallingTub_Mutable: FlatBufferObject { 301 validateVersionnull302 static func validateVersion() { FlatBuffersVersion_2_0_0() } 303 public var __buffer: ByteBuffer! { return _accessor.bb } 304 private var _accessor: Struct 305 306 public init(_ bb: ByteBuffer, o: Int32) { _accessor = Struct(bb: bb, position: o) } 307 308 public var weight: Int32 { return _accessor.readBuffer(of: Int32.self, at: 0) } mutatenull309 @discardableResult public func mutate(weight: Int32) -> Bool { return _accessor.mutate(weight, index: 0) } 310 311 unpacknull312 public mutating func unpack() -> FallingTub { 313 return FallingTub(&self) 314 } packnull315 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout FallingTub?) -> Offset { 316 guard var obj = obj else { return Offset() } 317 return pack(&builder, obj: &obj) 318 } 319 packnull320 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout FallingTub) -> Offset { 321 return builder.create(struct: obj) 322 } 323 } 324 325 public struct Attacker: FlatBufferObject, Verifiable, ObjectAPIPacker { 326 validateVersionnull327 static func validateVersion() { FlatBuffersVersion_2_0_0() } 328 public var __buffer: ByteBuffer! { return _accessor.bb } 329 private var _accessor: Table 330 331 public static var id: String { "MOVI" } finishnull332 public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: Attacker.id, addPrefix: prefix) } getRootAsAttackernull333 public static func getRootAsAttacker(bb: ByteBuffer) -> Attacker { return Attacker(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } 334 335 private init(_ t: Table) { _accessor = t } 336 public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } 337 338 private enum VTOFFSET: VOffset { 339 case swordAttackDamage = 4 340 var v: Int32 { Int32(self.rawValue) } 341 var p: VOffset { self.rawValue } 342 } 343 344 public var swordAttackDamage: Int32 { let o = _accessor.offset(VTOFFSET.swordAttackDamage.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) } mutatenull345 @discardableResult public func mutate(swordAttackDamage: Int32) -> Bool {let o = _accessor.offset(VTOFFSET.swordAttackDamage.v); return _accessor.mutate(swordAttackDamage, index: o) } startAttackernull346 public static func startAttacker(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 1) } addnull347 public static func add(swordAttackDamage: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: swordAttackDamage, def: 0, at: VTOFFSET.swordAttackDamage.p) } endAttackernull348 public static func endAttacker(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } 349 public static func createAttacker( 350 _ fbb: inout FlatBufferBuilder, 351 swordAttackDamage: Int32 = 0 352 ) -> Offset { 353 let __start = Attacker.startAttacker(&fbb) 354 Attacker.add(swordAttackDamage: swordAttackDamage, &fbb) 355 return Attacker.endAttacker(&fbb, start: __start) 356 } 357 358 unpacknull359 public mutating func unpack() -> AttackerT { 360 return AttackerT(&self) 361 } packnull362 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AttackerT?) -> Offset { 363 guard var obj = obj else { return Offset() } 364 return pack(&builder, obj: &obj) 365 } 366 packnull367 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AttackerT) -> Offset { 368 let __root = Attacker.startAttacker(&builder) 369 Attacker.add(swordAttackDamage: obj.swordAttackDamage, &builder) 370 return Attacker.endAttacker(&builder, start: __root) 371 } 372 verify<T>null373 public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { 374 var _v = try verifier.visitTable(at: position) 375 try _v.visit(field: VTOFFSET.swordAttackDamage.p, fieldName: "swordAttackDamage", required: false, type: Int32.self) 376 _v.finish() 377 } 378 } 379 380 extension Attacker: Encodable { 381 382 enum CodingKeys: String, CodingKey { 383 case swordAttackDamage = "sword_attack_damage" 384 } encodenull385 public func encode(to encoder: Encoder) throws { 386 var container = encoder.container(keyedBy: CodingKeys.self) 387 if swordAttackDamage != 0 { 388 try container.encodeIfPresent(swordAttackDamage, forKey: .swordAttackDamage) 389 } 390 } 391 } 392 393 public class AttackerT: NativeObject { 394 395 public var swordAttackDamage: Int32 396 397 public init(_ _t: inout Attacker) { 398 swordAttackDamage = _t.swordAttackDamage 399 } 400 401 public init() { 402 swordAttackDamage = 0 403 } 404 serializenull405 public func serialize() -> ByteBuffer { return serialize(type: Attacker.self) } 406 407 } 408 public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { 409 validateVersionnull410 static func validateVersion() { FlatBuffersVersion_2_0_0() } 411 public var __buffer: ByteBuffer! { return _accessor.bb } 412 private var _accessor: Table 413 414 public static var id: String { "MOVI" } finishnull415 public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: HandFan.id, addPrefix: prefix) } getRootAsHandFannull416 public static func getRootAsHandFan(bb: ByteBuffer) -> HandFan { return HandFan(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } 417 418 private init(_ t: Table) { _accessor = t } 419 public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } 420 421 private enum VTOFFSET: VOffset { 422 case length = 4 423 var v: Int32 { Int32(self.rawValue) } 424 var p: VOffset { self.rawValue } 425 } 426 427 public var length: Int32 { let o = _accessor.offset(VTOFFSET.length.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) } mutatenull428 @discardableResult public func mutate(length: Int32) -> Bool {let o = _accessor.offset(VTOFFSET.length.v); return _accessor.mutate(length, index: o) } startHandFannull429 public static func startHandFan(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 1) } addnull430 public static func add(length: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: length, def: 0, at: VTOFFSET.length.p) } endHandFannull431 public static func endHandFan(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } 432 public static func createHandFan( 433 _ fbb: inout FlatBufferBuilder, 434 length: Int32 = 0 435 ) -> Offset { 436 let __start = HandFan.startHandFan(&fbb) 437 HandFan.add(length: length, &fbb) 438 return HandFan.endHandFan(&fbb, start: __start) 439 } 440 441 unpacknull442 public mutating func unpack() -> HandFanT { 443 return HandFanT(&self) 444 } packnull445 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout HandFanT?) -> Offset { 446 guard var obj = obj else { return Offset() } 447 return pack(&builder, obj: &obj) 448 } 449 packnull450 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout HandFanT) -> Offset { 451 let __root = HandFan.startHandFan(&builder) 452 HandFan.add(length: obj.length, &builder) 453 return HandFan.endHandFan(&builder, start: __root) 454 } 455 verify<T>null456 public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { 457 var _v = try verifier.visitTable(at: position) 458 try _v.visit(field: VTOFFSET.length.p, fieldName: "length", required: false, type: Int32.self) 459 _v.finish() 460 } 461 } 462 463 extension HandFan: Encodable { 464 465 enum CodingKeys: String, CodingKey { 466 case length = "length" 467 } encodenull468 public func encode(to encoder: Encoder) throws { 469 var container = encoder.container(keyedBy: CodingKeys.self) 470 if length != 0 { 471 try container.encodeIfPresent(length, forKey: .length) 472 } 473 } 474 } 475 476 public class HandFanT: NativeObject { 477 478 public var length: Int32 479 480 public init(_ _t: inout HandFan) { 481 length = _t.length 482 } 483 484 public init() { 485 length = 0 486 } 487 serializenull488 public func serialize() -> ByteBuffer { return serialize(type: HandFan.self) } 489 490 } 491 public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { 492 validateVersionnull493 static func validateVersion() { FlatBuffersVersion_2_0_0() } 494 public var __buffer: ByteBuffer! { return _accessor.bb } 495 private var _accessor: Table 496 497 public static var id: String { "MOVI" } finishnull498 public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: Movie.id, addPrefix: prefix) } getRootAsMovienull499 public static func getRootAsMovie(bb: ByteBuffer) -> Movie { return Movie(Table(bb: bb, position: Int32(bb.read(def: UOffset.self, position: bb.reader)) + Int32(bb.reader))) } 500 501 private init(_ t: Table) { _accessor = t } 502 public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } 503 504 private enum VTOFFSET: VOffset { 505 case mainCharacterType = 4 506 case mainCharacter = 6 507 case charactersType = 8 508 case characters = 10 509 var v: Int32 { Int32(self.rawValue) } 510 var p: VOffset { self.rawValue } 511 } 512 513 public var mainCharacterType: Character { let o = _accessor.offset(VTOFFSET.mainCharacterType.v); return o == 0 ? .none_ : Character(rawValue: _accessor.readBuffer(of: UInt8.self, at: o)) ?? .none_ } mainCharacter<T: FlatbuffersInitializable>null514 public func mainCharacter<T: FlatbuffersInitializable>(type: T.Type) -> T? { let o = _accessor.offset(VTOFFSET.mainCharacter.v); return o == 0 ? nil : _accessor.union(o) } 515 public var hasCharactersType: Bool { let o = _accessor.offset(VTOFFSET.charactersType.v); return o == 0 ? false : true } 516 public var charactersTypeCount: Int32 { let o = _accessor.offset(VTOFFSET.charactersType.v); return o == 0 ? 0 : _accessor.vector(count: o) } charactersTypenull517 public func charactersType(at index: Int32) -> Character? { let o = _accessor.offset(VTOFFSET.charactersType.v); return o == 0 ? Character.none_ : Character(rawValue: _accessor.directRead(of: UInt8.self, offset: _accessor.vector(at: o) + index * 1)) } 518 public var hasCharacters: Bool { let o = _accessor.offset(VTOFFSET.characters.v); return o == 0 ? false : true } 519 public var charactersCount: Int32 { let o = _accessor.offset(VTOFFSET.characters.v); return o == 0 ? 0 : _accessor.vector(count: o) } characters<T: FlatbuffersInitializable>null520 public func characters<T: FlatbuffersInitializable>(at index: Int32, type: T.Type) -> T? { let o = _accessor.offset(VTOFFSET.characters.v); return o == 0 ? nil : _accessor.directUnion(_accessor.vector(at: o) + index * 4) } startMovienull521 public static func startMovie(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 4) } addnull522 public static func add(mainCharacterType: Character, _ fbb: inout FlatBufferBuilder) { fbb.add(element: mainCharacterType.rawValue, def: 0, at: VTOFFSET.mainCharacterType.p) } addnull523 public static func add(mainCharacter: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: mainCharacter, at: VTOFFSET.mainCharacter.p) } addVectorOfnull524 public static func addVectorOf(charactersType: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: charactersType, at: VTOFFSET.charactersType.p) } addVectorOfnull525 public static func addVectorOf(characters: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: characters, at: VTOFFSET.characters.p) } endMovienull526 public static func endMovie(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } 527 public static func createMovie( 528 _ fbb: inout FlatBufferBuilder, 529 mainCharacterType: Character = .none_, 530 mainCharacterOffset mainCharacter: Offset = Offset(), 531 charactersTypeVectorOffset charactersType: Offset = Offset(), 532 charactersVectorOffset characters: Offset = Offset() 533 ) -> Offset { 534 let __start = Movie.startMovie(&fbb) 535 Movie.add(mainCharacterType: mainCharacterType, &fbb) 536 Movie.add(mainCharacter: mainCharacter, &fbb) 537 Movie.addVectorOf(charactersType: charactersType, &fbb) 538 Movie.addVectorOf(characters: characters, &fbb) 539 return Movie.endMovie(&fbb, start: __start) 540 } 541 542 unpacknull543 public mutating func unpack() -> MovieT { 544 return MovieT(&self) 545 } packnull546 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MovieT?) -> Offset { 547 guard var obj = obj else { return Offset() } 548 return pack(&builder, obj: &obj) 549 } 550 packnull551 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MovieT) -> Offset { 552 let __mainCharacter = obj.mainCharacter?.pack(builder: &builder) ?? Offset() 553 var __characters__: [Offset] = [] 554 for i in obj.characters { 555 guard let off = i?.pack(builder: &builder) else { continue } 556 __characters__.append(off) 557 } 558 let __characters = builder.createVector(ofOffsets: __characters__) 559 let __charactersType = builder.createVector(obj.characters.compactMap { $0?.type }) 560 let __root = Movie.startMovie(&builder) 561 if let o = obj.mainCharacter?.type { 562 Movie.add(mainCharacterType: o, &builder) 563 Movie.add(mainCharacter: __mainCharacter, &builder) 564 } 565 566 Movie.addVectorOf(charactersType: __charactersType, &builder) 567 Movie.addVectorOf(characters: __characters, &builder) 568 return Movie.endMovie(&builder, start: __root) 569 } 570 verify<T>null571 public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { 572 var _v = try verifier.visitTable(at: position) 573 try _v.visit(unionKey: VTOFFSET.mainCharacterType.p, unionField: VTOFFSET.mainCharacter.p, unionKeyName: "mainCharacterType", fieldName: "mainCharacter", required: false, completion: { (verifier, key: Character, pos) in 574 switch key { 575 case .none_: 576 break // NOTE - SWIFT doesnt support none 577 case .mulan: 578 try ForwardOffset<Attacker>.verify(&verifier, at: pos, of: Attacker.self) 579 case .rapunzel: 580 try Rapunzel.verify(&verifier, at: pos, of: Rapunzel.self) 581 case .belle: 582 try BookReader.verify(&verifier, at: pos, of: BookReader.self) 583 case .bookfan: 584 try BookReader.verify(&verifier, at: pos, of: BookReader.self) 585 case .other: 586 try ForwardOffset<String>.verify(&verifier, at: pos, of: String.self) 587 case .unused: 588 try ForwardOffset<String>.verify(&verifier, at: pos, of: String.self) 589 } 590 }) 591 try _v.visitUnionVector(unionKey: VTOFFSET.charactersType.p, unionField: VTOFFSET.characters.p, unionKeyName: "charactersType", fieldName: "characters", required: false, completion: { (verifier, key: Character, pos) in 592 switch key { 593 case .none_: 594 break // NOTE - SWIFT doesnt support none 595 case .mulan: 596 try ForwardOffset<Attacker>.verify(&verifier, at: pos, of: Attacker.self) 597 case .rapunzel: 598 try Rapunzel.verify(&verifier, at: pos, of: Rapunzel.self) 599 case .belle: 600 try BookReader.verify(&verifier, at: pos, of: BookReader.self) 601 case .bookfan: 602 try BookReader.verify(&verifier, at: pos, of: BookReader.self) 603 case .other: 604 try ForwardOffset<String>.verify(&verifier, at: pos, of: String.self) 605 case .unused: 606 try ForwardOffset<String>.verify(&verifier, at: pos, of: String.self) 607 } 608 }) 609 _v.finish() 610 } 611 } 612 613 extension Movie: Encodable { 614 615 enum CodingKeys: String, CodingKey { 616 case mainCharacterType = "main_character_type" 617 case mainCharacter = "main_character" 618 case charactersType = "characters_type" 619 case characters = "characters" 620 } encodenull621 public func encode(to encoder: Encoder) throws { 622 var container = encoder.container(keyedBy: CodingKeys.self) 623 if mainCharacterType != .none_ { 624 try container.encodeIfPresent(mainCharacterType, forKey: .mainCharacterType) 625 } 626 switch mainCharacterType { 627 case .mulan: 628 let _v = mainCharacter(type: Attacker.self) 629 try container.encodeIfPresent(_v, forKey: .mainCharacter) 630 case .rapunzel: 631 let _v = mainCharacter(type: Rapunzel.self) 632 try container.encodeIfPresent(_v, forKey: .mainCharacter) 633 case .belle: 634 let _v = mainCharacter(type: BookReader.self) 635 try container.encodeIfPresent(_v, forKey: .mainCharacter) 636 case .bookfan: 637 let _v = mainCharacter(type: BookReader.self) 638 try container.encodeIfPresent(_v, forKey: .mainCharacter) 639 case .other: 640 let _v = mainCharacter(type: String.self) 641 try container.encodeIfPresent(_v, forKey: .mainCharacter) 642 case .unused: 643 let _v = mainCharacter(type: String.self) 644 try container.encodeIfPresent(_v, forKey: .mainCharacter) 645 default: break; 646 } 647 if charactersCount > 0 { 648 var enumsEncoder = container.nestedUnkeyedContainer(forKey: .charactersType) 649 var contentEncoder = container.nestedUnkeyedContainer(forKey: .characters) 650 for index in 0..<charactersCount { 651 guard let type = charactersType(at: index) else { continue } 652 try enumsEncoder.encode(type) 653 switch type { 654 case .mulan: 655 let _v = characters(at: index, type: Attacker.self) 656 try contentEncoder.encode(_v) 657 case .rapunzel: 658 let _v = characters(at: index, type: Rapunzel.self) 659 try contentEncoder.encode(_v) 660 case .belle: 661 let _v = characters(at: index, type: BookReader.self) 662 try contentEncoder.encode(_v) 663 case .bookfan: 664 let _v = characters(at: index, type: BookReader.self) 665 try contentEncoder.encode(_v) 666 case .other: 667 let _v = characters(at: index, type: String.self) 668 try contentEncoder.encode(_v) 669 case .unused: 670 let _v = characters(at: index, type: String.self) 671 try contentEncoder.encode(_v) 672 default: break; 673 } 674 } 675 } 676 } 677 } 678 679 public class MovieT: NativeObject { 680 681 public var mainCharacter: CharacterUnion? 682 public var characters: [CharacterUnion?] 683 684 public init(_ _t: inout Movie) { 685 switch _t.mainCharacterType { 686 case .mulan: 687 var _v = _t.mainCharacter(type: Attacker.self) 688 mainCharacter = CharacterUnion(_v?.unpack(), type: .mulan) 689 case .rapunzel: 690 var _v = _t.mainCharacter(type: Rapunzel_Mutable.self) 691 mainCharacter = CharacterUnion(_v?.unpack(), type: .rapunzel) 692 case .belle: 693 var _v = _t.mainCharacter(type: BookReader_Mutable.self) 694 mainCharacter = CharacterUnion(_v?.unpack(), type: .belle) 695 case .bookfan: 696 var _v = _t.mainCharacter(type: BookReader_Mutable.self) 697 mainCharacter = CharacterUnion(_v?.unpack(), type: .bookfan) 698 case .other: 699 var _v = _t.mainCharacter(type: String.self) 700 mainCharacter = CharacterUnion(_v?.unpack(), type: .other) 701 case .unused: 702 var _v = _t.mainCharacter(type: String.self) 703 mainCharacter = CharacterUnion(_v?.unpack(), type: .unused) 704 default: break 705 } 706 characters = [] 707 for index in 0..<_t.charactersCount { 708 switch _t.charactersType(at: index) { 709 case .mulan: 710 var _v = _t.characters(at: index, type: Attacker.self) 711 characters.append(CharacterUnion(_v?.unpack(), type: .mulan)) 712 case .rapunzel: 713 var _v = _t.characters(at: index, type: Rapunzel_Mutable.self) 714 characters.append(CharacterUnion(_v?.unpack(), type: .rapunzel)) 715 case .belle: 716 var _v = _t.characters(at: index, type: BookReader_Mutable.self) 717 characters.append(CharacterUnion(_v?.unpack(), type: .belle)) 718 case .bookfan: 719 var _v = _t.characters(at: index, type: BookReader_Mutable.self) 720 characters.append(CharacterUnion(_v?.unpack(), type: .bookfan)) 721 case .other: 722 var _v = _t.characters(at: index, type: String.self) 723 characters.append(CharacterUnion(_v?.unpack(), type: .other)) 724 case .unused: 725 var _v = _t.characters(at: index, type: String.self) 726 characters.append(CharacterUnion(_v?.unpack(), type: .unused)) 727 default: break 728 } 729 } 730 } 731 732 public init() { 733 characters = [] 734 } 735 serializenull736 public func serialize() -> ByteBuffer { return serialize(type: Movie.self) } 737 738 } 739