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_25_1_24() } 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_25_1_24() } 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_25_1_24() } 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_25_1_24() } 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_25_1_24() } 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_25_1_24() } 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_25_1_24() } 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) } 333 private init(_ t: Table) { _accessor = t } 334 public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } 335 336 private enum VTOFFSET: VOffset { 337 case swordAttackDamage = 4 338 var v: Int32 { Int32(self.rawValue) } 339 var p: VOffset { self.rawValue } 340 } 341 342 public var swordAttackDamage: Int32 { let o = _accessor.offset(VTOFFSET.swordAttackDamage.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) } mutatenull343 @discardableResult public func mutate(swordAttackDamage: Int32) -> Bool {let o = _accessor.offset(VTOFFSET.swordAttackDamage.v); return _accessor.mutate(swordAttackDamage, index: o) } startAttackernull344 public static func startAttacker(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 1) } addnull345 public static func add(swordAttackDamage: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: swordAttackDamage, def: 0, at: VTOFFSET.swordAttackDamage.p) } endAttackernull346 public static func endAttacker(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } 347 public static func createAttacker( 348 _ fbb: inout FlatBufferBuilder, 349 swordAttackDamage: Int32 = 0 350 ) -> Offset { 351 let __start = Attacker.startAttacker(&fbb) 352 Attacker.add(swordAttackDamage: swordAttackDamage, &fbb) 353 return Attacker.endAttacker(&fbb, start: __start) 354 } 355 356 unpacknull357 public mutating func unpack() -> AttackerT { 358 return AttackerT(&self) 359 } packnull360 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AttackerT?) -> Offset { 361 guard var obj = obj else { return Offset() } 362 return pack(&builder, obj: &obj) 363 } 364 packnull365 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AttackerT) -> Offset { 366 let __root = Attacker.startAttacker(&builder) 367 Attacker.add(swordAttackDamage: obj.swordAttackDamage, &builder) 368 return Attacker.endAttacker(&builder, start: __root) 369 } 370 verify<T>null371 public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { 372 var _v = try verifier.visitTable(at: position) 373 try _v.visit(field: VTOFFSET.swordAttackDamage.p, fieldName: "swordAttackDamage", required: false, type: Int32.self) 374 _v.finish() 375 } 376 } 377 378 extension Attacker: Encodable { 379 380 enum CodingKeys: String, CodingKey { 381 case swordAttackDamage = "sword_attack_damage" 382 } encodenull383 public func encode(to encoder: Encoder) throws { 384 var container = encoder.container(keyedBy: CodingKeys.self) 385 if swordAttackDamage != 0 { 386 try container.encodeIfPresent(swordAttackDamage, forKey: .swordAttackDamage) 387 } 388 } 389 } 390 391 public class AttackerT: NativeObject { 392 393 public var swordAttackDamage: Int32 394 395 public init(_ _t: inout Attacker) { 396 swordAttackDamage = _t.swordAttackDamage 397 } 398 399 public init() { 400 swordAttackDamage = 0 401 } 402 serializenull403 public func serialize() -> ByteBuffer { return serialize(type: Attacker.self) } 404 405 } 406 public struct HandFan: FlatBufferObject, Verifiable, ObjectAPIPacker { 407 validateVersionnull408 static func validateVersion() { FlatBuffersVersion_25_1_24() } 409 public var __buffer: ByteBuffer! { return _accessor.bb } 410 private var _accessor: Table 411 412 public static var id: String { "MOVI" } finishnull413 public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: HandFan.id, addPrefix: prefix) } 414 private init(_ t: Table) { _accessor = t } 415 public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } 416 417 private enum VTOFFSET: VOffset { 418 case length = 4 419 var v: Int32 { Int32(self.rawValue) } 420 var p: VOffset { self.rawValue } 421 } 422 423 public var length: Int32 { let o = _accessor.offset(VTOFFSET.length.v); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) } mutatenull424 @discardableResult public func mutate(length: Int32) -> Bool {let o = _accessor.offset(VTOFFSET.length.v); return _accessor.mutate(length, index: o) } startHandFannull425 public static func startHandFan(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 1) } addnull426 public static func add(length: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: length, def: 0, at: VTOFFSET.length.p) } endHandFannull427 public static func endHandFan(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } 428 public static func createHandFan( 429 _ fbb: inout FlatBufferBuilder, 430 length: Int32 = 0 431 ) -> Offset { 432 let __start = HandFan.startHandFan(&fbb) 433 HandFan.add(length: length, &fbb) 434 return HandFan.endHandFan(&fbb, start: __start) 435 } 436 437 unpacknull438 public mutating func unpack() -> HandFanT { 439 return HandFanT(&self) 440 } packnull441 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout HandFanT?) -> Offset { 442 guard var obj = obj else { return Offset() } 443 return pack(&builder, obj: &obj) 444 } 445 packnull446 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout HandFanT) -> Offset { 447 let __root = HandFan.startHandFan(&builder) 448 HandFan.add(length: obj.length, &builder) 449 return HandFan.endHandFan(&builder, start: __root) 450 } 451 verify<T>null452 public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { 453 var _v = try verifier.visitTable(at: position) 454 try _v.visit(field: VTOFFSET.length.p, fieldName: "length", required: false, type: Int32.self) 455 _v.finish() 456 } 457 } 458 459 extension HandFan: Encodable { 460 461 enum CodingKeys: String, CodingKey { 462 case length = "length" 463 } encodenull464 public func encode(to encoder: Encoder) throws { 465 var container = encoder.container(keyedBy: CodingKeys.self) 466 if length != 0 { 467 try container.encodeIfPresent(length, forKey: .length) 468 } 469 } 470 } 471 472 public class HandFanT: NativeObject { 473 474 public var length: Int32 475 476 public init(_ _t: inout HandFan) { 477 length = _t.length 478 } 479 480 public init() { 481 length = 0 482 } 483 serializenull484 public func serialize() -> ByteBuffer { return serialize(type: HandFan.self) } 485 486 } 487 public struct Movie: FlatBufferObject, Verifiable, ObjectAPIPacker { 488 validateVersionnull489 static func validateVersion() { FlatBuffersVersion_25_1_24() } 490 public var __buffer: ByteBuffer! { return _accessor.bb } 491 private var _accessor: Table 492 493 public static var id: String { "MOVI" } finishnull494 public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: Movie.id, addPrefix: prefix) } 495 private init(_ t: Table) { _accessor = t } 496 public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } 497 498 private enum VTOFFSET: VOffset { 499 case mainCharacterType = 4 500 case mainCharacter = 6 501 case charactersType = 8 502 case characters = 10 503 var v: Int32 { Int32(self.rawValue) } 504 var p: VOffset { self.rawValue } 505 } 506 507 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>null508 public func mainCharacter<T: FlatbuffersInitializable>(type: T.Type) -> T? { let o = _accessor.offset(VTOFFSET.mainCharacter.v); return o == 0 ? nil : _accessor.union(o) } 509 public var hasCharactersType: Bool { let o = _accessor.offset(VTOFFSET.charactersType.v); return o == 0 ? false : true } 510 public var charactersTypeCount: Int32 { let o = _accessor.offset(VTOFFSET.charactersType.v); return o == 0 ? 0 : _accessor.vector(count: o) } charactersTypenull511 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)) } 512 public var hasCharacters: Bool { let o = _accessor.offset(VTOFFSET.characters.v); return o == 0 ? false : true } 513 public var charactersCount: Int32 { let o = _accessor.offset(VTOFFSET.characters.v); return o == 0 ? 0 : _accessor.vector(count: o) } characters<T: FlatbuffersInitializable>null514 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) } startMovienull515 public static func startMovie(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 4) } addnull516 public static func add(mainCharacterType: Character, _ fbb: inout FlatBufferBuilder) { fbb.add(element: mainCharacterType.rawValue, def: 0, at: VTOFFSET.mainCharacterType.p) } addnull517 public static func add(mainCharacter: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: mainCharacter, at: VTOFFSET.mainCharacter.p) } addVectorOfnull518 public static func addVectorOf(charactersType: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: charactersType, at: VTOFFSET.charactersType.p) } addVectorOfnull519 public static func addVectorOf(characters: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: characters, at: VTOFFSET.characters.p) } endMovienull520 public static func endMovie(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } 521 public static func createMovie( 522 _ fbb: inout FlatBufferBuilder, 523 mainCharacterType: Character = .none_, 524 mainCharacterOffset mainCharacter: Offset = Offset(), 525 charactersTypeVectorOffset charactersType: Offset = Offset(), 526 charactersVectorOffset characters: Offset = Offset() 527 ) -> Offset { 528 let __start = Movie.startMovie(&fbb) 529 Movie.add(mainCharacterType: mainCharacterType, &fbb) 530 Movie.add(mainCharacter: mainCharacter, &fbb) 531 Movie.addVectorOf(charactersType: charactersType, &fbb) 532 Movie.addVectorOf(characters: characters, &fbb) 533 return Movie.endMovie(&fbb, start: __start) 534 } 535 536 unpacknull537 public mutating func unpack() -> MovieT { 538 return MovieT(&self) 539 } packnull540 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MovieT?) -> Offset { 541 guard var obj = obj else { return Offset() } 542 return pack(&builder, obj: &obj) 543 } 544 packnull545 public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MovieT) -> Offset { 546 let __mainCharacter = obj.mainCharacter?.pack(builder: &builder) ?? Offset() 547 var __characters__: [Offset] = [] 548 for i in obj.characters { 549 guard let off = i?.pack(builder: &builder) else { continue } 550 __characters__.append(off) 551 } 552 let __characters = builder.createVector(ofOffsets: __characters__) 553 let __charactersType = builder.createVector(obj.characters.compactMap { $0?.type }) 554 let __root = Movie.startMovie(&builder) 555 if let o = obj.mainCharacter?.type { 556 Movie.add(mainCharacterType: o, &builder) 557 Movie.add(mainCharacter: __mainCharacter, &builder) 558 } 559 560 Movie.addVectorOf(charactersType: __charactersType, &builder) 561 Movie.addVectorOf(characters: __characters, &builder) 562 return Movie.endMovie(&builder, start: __root) 563 } 564 verify<T>null565 public static func verify<T>(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { 566 var _v = try verifier.visitTable(at: position) 567 try _v.visit(unionKey: VTOFFSET.mainCharacterType.p, unionField: VTOFFSET.mainCharacter.p, unionKeyName: "mainCharacterType", fieldName: "mainCharacter", required: false, completion: { (verifier, key: Character, pos) in 568 switch key { 569 case .none_: 570 break // NOTE - SWIFT doesnt support none 571 case .mulan: 572 try ForwardOffset<Attacker>.verify(&verifier, at: pos, of: Attacker.self) 573 case .rapunzel: 574 try Rapunzel.verify(&verifier, at: pos, of: Rapunzel.self) 575 case .belle: 576 try BookReader.verify(&verifier, at: pos, of: BookReader.self) 577 case .bookfan: 578 try BookReader.verify(&verifier, at: pos, of: BookReader.self) 579 case .other: 580 try ForwardOffset<String>.verify(&verifier, at: pos, of: String.self) 581 case .unused: 582 try ForwardOffset<String>.verify(&verifier, at: pos, of: String.self) 583 } 584 }) 585 try _v.visitUnionVector(unionKey: VTOFFSET.charactersType.p, unionField: VTOFFSET.characters.p, unionKeyName: "charactersType", fieldName: "characters", required: false, completion: { (verifier, key: Character, pos) in 586 switch key { 587 case .none_: 588 break // NOTE - SWIFT doesnt support none 589 case .mulan: 590 try ForwardOffset<Attacker>.verify(&verifier, at: pos, of: Attacker.self) 591 case .rapunzel: 592 try Rapunzel.verify(&verifier, at: pos, of: Rapunzel.self) 593 case .belle: 594 try BookReader.verify(&verifier, at: pos, of: BookReader.self) 595 case .bookfan: 596 try BookReader.verify(&verifier, at: pos, of: BookReader.self) 597 case .other: 598 try ForwardOffset<String>.verify(&verifier, at: pos, of: String.self) 599 case .unused: 600 try ForwardOffset<String>.verify(&verifier, at: pos, of: String.self) 601 } 602 }) 603 _v.finish() 604 } 605 } 606 607 extension Movie: Encodable { 608 609 enum CodingKeys: String, CodingKey { 610 case mainCharacterType = "main_character_type" 611 case mainCharacter = "main_character" 612 case charactersType = "characters_type" 613 case characters = "characters" 614 } encodenull615 public func encode(to encoder: Encoder) throws { 616 var container = encoder.container(keyedBy: CodingKeys.self) 617 if mainCharacterType != .none_ { 618 try container.encodeIfPresent(mainCharacterType, forKey: .mainCharacterType) 619 } 620 switch mainCharacterType { 621 case .mulan: 622 let _v = mainCharacter(type: Attacker.self) 623 try container.encodeIfPresent(_v, forKey: .mainCharacter) 624 case .rapunzel: 625 let _v = mainCharacter(type: Rapunzel.self) 626 try container.encodeIfPresent(_v, forKey: .mainCharacter) 627 case .belle: 628 let _v = mainCharacter(type: BookReader.self) 629 try container.encodeIfPresent(_v, forKey: .mainCharacter) 630 case .bookfan: 631 let _v = mainCharacter(type: BookReader.self) 632 try container.encodeIfPresent(_v, forKey: .mainCharacter) 633 case .other: 634 let _v = mainCharacter(type: String.self) 635 try container.encodeIfPresent(_v, forKey: .mainCharacter) 636 case .unused: 637 let _v = mainCharacter(type: String.self) 638 try container.encodeIfPresent(_v, forKey: .mainCharacter) 639 default: break; 640 } 641 if charactersCount > 0 { 642 var enumsEncoder = container.nestedUnkeyedContainer(forKey: .charactersType) 643 var contentEncoder = container.nestedUnkeyedContainer(forKey: .characters) 644 for index in 0..<charactersCount { 645 guard let type = charactersType(at: index) else { continue } 646 try enumsEncoder.encode(type) 647 switch type { 648 case .mulan: 649 let _v = characters(at: index, type: Attacker.self) 650 try contentEncoder.encode(_v) 651 case .rapunzel: 652 let _v = characters(at: index, type: Rapunzel.self) 653 try contentEncoder.encode(_v) 654 case .belle: 655 let _v = characters(at: index, type: BookReader.self) 656 try contentEncoder.encode(_v) 657 case .bookfan: 658 let _v = characters(at: index, type: BookReader.self) 659 try contentEncoder.encode(_v) 660 case .other: 661 let _v = characters(at: index, type: String.self) 662 try contentEncoder.encode(_v) 663 case .unused: 664 let _v = characters(at: index, type: String.self) 665 try contentEncoder.encode(_v) 666 default: break; 667 } 668 } 669 } 670 } 671 } 672 673 public class MovieT: NativeObject { 674 675 public var mainCharacter: CharacterUnion? 676 public var characters: [CharacterUnion?] 677 678 public init(_ _t: inout Movie) { 679 switch _t.mainCharacterType { 680 case .mulan: 681 var _v = _t.mainCharacter(type: Attacker.self) 682 mainCharacter = CharacterUnion(_v?.unpack(), type: .mulan) 683 case .rapunzel: 684 var _v = _t.mainCharacter(type: Rapunzel_Mutable.self) 685 mainCharacter = CharacterUnion(_v?.unpack(), type: .rapunzel) 686 case .belle: 687 var _v = _t.mainCharacter(type: BookReader_Mutable.self) 688 mainCharacter = CharacterUnion(_v?.unpack(), type: .belle) 689 case .bookfan: 690 var _v = _t.mainCharacter(type: BookReader_Mutable.self) 691 mainCharacter = CharacterUnion(_v?.unpack(), type: .bookfan) 692 case .other: 693 var _v = _t.mainCharacter(type: String.self) 694 mainCharacter = CharacterUnion(_v?.unpack(), type: .other) 695 case .unused: 696 var _v = _t.mainCharacter(type: String.self) 697 mainCharacter = CharacterUnion(_v?.unpack(), type: .unused) 698 default: break 699 } 700 characters = [] 701 for index in 0..<_t.charactersCount { 702 switch _t.charactersType(at: index) { 703 case .mulan: 704 var _v = _t.characters(at: index, type: Attacker.self) 705 characters.append(CharacterUnion(_v?.unpack(), type: .mulan)) 706 case .rapunzel: 707 var _v = _t.characters(at: index, type: Rapunzel_Mutable.self) 708 characters.append(CharacterUnion(_v?.unpack(), type: .rapunzel)) 709 case .belle: 710 var _v = _t.characters(at: index, type: BookReader_Mutable.self) 711 characters.append(CharacterUnion(_v?.unpack(), type: .belle)) 712 case .bookfan: 713 var _v = _t.characters(at: index, type: BookReader_Mutable.self) 714 characters.append(CharacterUnion(_v?.unpack(), type: .bookfan)) 715 case .other: 716 var _v = _t.characters(at: index, type: String.self) 717 characters.append(CharacterUnion(_v?.unpack(), type: .other)) 718 case .unused: 719 var _v = _t.characters(at: index, type: String.self) 720 characters.append(CharacterUnion(_v?.unpack(), type: .unused)) 721 default: break 722 } 723 } 724 } 725 726 public init() { 727 characters = [] 728 } 729 serializenull730 public func serialize() -> ByteBuffer { return serialize(type: Movie.self) } 731 732 } 733