// automatically generated by the FlatBuffers compiler, do not modify // swiftlint:disable all // swiftformat:disable all #if canImport(Common) import Common #endif import FlatBuffers public enum Character: UInt8, FlatbuffersVectorInitializable, UnionEnum { public typealias T = UInt8 public init?(value: T) { self.init(rawValue: value) } public static var byteSize: Int { return MemoryLayout.size } public var value: UInt8 { return self.rawValue } case none_ = 0 case mulan = 1 case rapunzel = 2 case belle = 3 case bookfan = 4 case other = 5 case unused = 6 public static var max: Character { return .unused } public static var min: Character { return .none_ } } extension Character: Encodable { public func encode(to encoder: Encoder) throws { var container = encoder.singleValueContainer() switch self { case .none_: try container.encode("NONE") case .mulan: try container.encode("MuLan") case .rapunzel: try container.encode("Rapunzel") case .belle: try container.encode("Belle") case .bookfan: try container.encode("BookFan") case .other: try container.encode("Other") case .unused: try container.encode("Unused") } } } public struct CharacterUnion { public var type: Character public var value: NativeObject? public init(_ v: NativeObject?, type: Character) { self.type = type self.value = v } public func pack(builder: inout FlatBufferBuilder) -> Offset { switch type { case .mulan: var __obj = value as? AttackerT return Attacker.pack(&builder, obj: &__obj) case .rapunzel: var __obj = value as? Rapunzel return Rapunzel_Mutable.pack(&builder, obj: &__obj) case .belle: var __obj = value as? BookReader return BookReader_Mutable.pack(&builder, obj: &__obj) case .bookfan: var __obj = value as? BookReader return BookReader_Mutable.pack(&builder, obj: &__obj) case .other: var __obj = value as? String return String.pack(&builder, obj: &__obj) case .unused: var __obj = value as? String return String.pack(&builder, obj: &__obj) default: return Offset() } } } public enum Gadget: UInt8, FlatbuffersVectorInitializable, UnionEnum { public typealias T = UInt8 public init?(value: T) { self.init(rawValue: value) } public static var byteSize: Int { return MemoryLayout.size } public var value: UInt8 { return self.rawValue } case none_ = 0 case fallingtub = 1 case handfan = 2 public static var max: Gadget { return .handfan } public static var min: Gadget { return .none_ } } extension Gadget: Encodable { public func encode(to encoder: Encoder) throws { var container = encoder.singleValueContainer() switch self { case .none_: try container.encode("NONE") case .fallingtub: try container.encode("FallingTub") case .handfan: try container.encode("HandFan") } } } public struct GadgetUnion { public var type: Gadget public var value: NativeObject? public init(_ v: NativeObject?, type: Gadget) { self.type = type self.value = v } public func pack(builder: inout FlatBufferBuilder) -> Offset { switch type { case .fallingtub: var __obj = value as? FallingTub return FallingTub_Mutable.pack(&builder, obj: &__obj) case .handfan: var __obj = value as? HandFanT return HandFan.pack(&builder, obj: &__obj) default: return Offset() } } } public struct Rapunzel: NativeStruct, FlatbuffersVectorInitializable, Verifiable, FlatbuffersInitializable, NativeObject { static func validateVersion() { FlatBuffersVersion_25_12_19() } private var _hairLength: Int32 public init(_ bb: ByteBuffer, o: Int32) { self = bb.read(def: Self.self, position: Int(o)) } public init(hairLength: Int32) { _hairLength = hairLength } public init() { _hairLength = 0 } public init(_ _t: borrowing Rapunzel_Mutable) { _hairLength = _t.hairLength } public var hairLength: Int32 { _hairLength } public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { try verifier.inBuffer(position: position, of: Rapunzel.self) } } extension Rapunzel: Encodable { enum CodingKeys: String, CodingKey { case hairLength = "hair_length" } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) if hairLength != 0 { try container.encodeIfPresent(hairLength, forKey: .hairLength) } } } public struct Rapunzel_Mutable: FlatBufferStruct, FlatbuffersVectorInitializable { static func validateVersion() { FlatBuffersVersion_25_12_19() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct public init(_ bb: ByteBuffer, o: Int32) { _accessor = Struct(bb: bb, position: o) } public var hairLength: Int32 { return _accessor.readBuffer(of: Int32.self, at: 0) } @discardableResult public func mutate(hairLength: Int32) -> Bool { return _accessor.mutate(hairLength, index: 0) } public func unpack() -> Rapunzel { return Rapunzel(self) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout Rapunzel?) -> Offset { guard var obj = obj else { return Offset() } return pack(&builder, obj: &obj) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout Rapunzel) -> Offset { return builder.create(struct: obj) } } public struct BookReader: NativeStruct, FlatbuffersVectorInitializable, Verifiable, FlatbuffersInitializable, NativeObject { static func validateVersion() { FlatBuffersVersion_25_12_19() } private var _booksRead: Int32 public init(_ bb: ByteBuffer, o: Int32) { self = bb.read(def: Self.self, position: Int(o)) } public init(booksRead: Int32) { _booksRead = booksRead } public init() { _booksRead = 0 } public init(_ _t: borrowing BookReader_Mutable) { _booksRead = _t.booksRead } public var booksRead: Int32 { _booksRead } public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { try verifier.inBuffer(position: position, of: BookReader.self) } } extension BookReader: Encodable { enum CodingKeys: String, CodingKey { case booksRead = "books_read" } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) if booksRead != 0 { try container.encodeIfPresent(booksRead, forKey: .booksRead) } } } public struct BookReader_Mutable: FlatBufferStruct, FlatbuffersVectorInitializable { static func validateVersion() { FlatBuffersVersion_25_12_19() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct public init(_ bb: ByteBuffer, o: Int32) { _accessor = Struct(bb: bb, position: o) } public var booksRead: Int32 { return _accessor.readBuffer(of: Int32.self, at: 0) } @discardableResult public func mutate(booksRead: Int32) -> Bool { return _accessor.mutate(booksRead, index: 0) } public func unpack() -> BookReader { return BookReader(self) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout BookReader?) -> Offset { guard var obj = obj else { return Offset() } return pack(&builder, obj: &obj) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout BookReader) -> Offset { return builder.create(struct: obj) } } public struct FallingTub: NativeStruct, FlatbuffersVectorInitializable, Verifiable, FlatbuffersInitializable, NativeObject { static func validateVersion() { FlatBuffersVersion_25_12_19() } private var _weight: Int32 public init(_ bb: ByteBuffer, o: Int32) { self = bb.read(def: Self.self, position: Int(o)) } public init(weight: Int32) { _weight = weight } public init() { _weight = 0 } public init(_ _t: borrowing FallingTub_Mutable) { _weight = _t.weight } public var weight: Int32 { _weight } public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { try verifier.inBuffer(position: position, of: FallingTub.self) } } extension FallingTub: Encodable { enum CodingKeys: String, CodingKey { case weight = "weight" } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) if weight != 0 { try container.encodeIfPresent(weight, forKey: .weight) } } } public struct FallingTub_Mutable: FlatBufferStruct, FlatbuffersVectorInitializable { static func validateVersion() { FlatBuffersVersion_25_12_19() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Struct public init(_ bb: ByteBuffer, o: Int32) { _accessor = Struct(bb: bb, position: o) } public var weight: Int32 { return _accessor.readBuffer(of: Int32.self, at: 0) } @discardableResult public func mutate(weight: Int32) -> Bool { return _accessor.mutate(weight, index: 0) } public func unpack() -> FallingTub { return FallingTub(self) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout FallingTub?) -> Offset { guard var obj = obj else { return Offset() } return pack(&builder, obj: &obj) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout FallingTub) -> Offset { return builder.create(struct: obj) } } public struct Attacker: FlatBufferVerifiableTable, FlatbuffersVectorInitializable, ObjectAPIPacker { static func validateVersion() { FlatBuffersVersion_25_12_19() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table public static var id: String { "MOVI" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: Attacker.id, addPrefix: prefix) } private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } private struct VT { static let swordAttackDamage: VOffset = 4 } public var swordAttackDamage: Int32 { let o = _accessor.offset(VT.swordAttackDamage); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) } @discardableResult public func mutate(swordAttackDamage: Int32) -> Bool {let o = _accessor.offset(VT.swordAttackDamage); return _accessor.mutate(swordAttackDamage, index: o) } public static func startAttacker(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 1) } public static func add(swordAttackDamage: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: swordAttackDamage, def: 0, at: VT.swordAttackDamage) } public static func endAttacker(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } public static func createAttacker( _ fbb: inout FlatBufferBuilder, swordAttackDamage: Int32 = 0 ) -> Offset { let __start = Attacker.startAttacker(&fbb) Attacker.add(swordAttackDamage: swordAttackDamage, &fbb) return Attacker.endAttacker(&fbb, start: __start) } public func unpack() -> AttackerT { return AttackerT(self) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AttackerT?) -> Offset { guard var obj = obj else { return Offset() } return pack(&builder, obj: &obj) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AttackerT) -> Offset { let __root = Attacker.startAttacker(&builder) Attacker.add(swordAttackDamage: obj.swordAttackDamage, &builder) return Attacker.endAttacker(&builder, start: __root) } public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { var _v = try verifier.visitTable(at: position) try _v.visit(field: VT.swordAttackDamage, fieldName: "swordAttackDamage", required: false, type: Int32.self) _v.finish() } } extension Attacker: Encodable { enum CodingKeys: String, CodingKey { case swordAttackDamage = "sword_attack_damage" } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) if swordAttackDamage != 0 { try container.encodeIfPresent(swordAttackDamage, forKey: .swordAttackDamage) } } } public class AttackerT: NativeObject { public var swordAttackDamage: Int32 public init(_ _t: borrowing Attacker) { swordAttackDamage = _t.swordAttackDamage } public init() { swordAttackDamage = 0 } public func serialize() -> ByteBuffer { return serialize(type: Attacker.self) } } public struct HandFan: FlatBufferVerifiableTable, FlatbuffersVectorInitializable, ObjectAPIPacker { static func validateVersion() { FlatBuffersVersion_25_12_19() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table public static var id: String { "MOVI" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: HandFan.id, addPrefix: prefix) } private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } private struct VT { static let length: VOffset = 4 } public var length: Int32 { let o = _accessor.offset(VT.length); return o == 0 ? 0 : _accessor.readBuffer(of: Int32.self, at: o) } @discardableResult public func mutate(length: Int32) -> Bool {let o = _accessor.offset(VT.length); return _accessor.mutate(length, index: o) } public static func startHandFan(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 1) } public static func add(length: Int32, _ fbb: inout FlatBufferBuilder) { fbb.add(element: length, def: 0, at: VT.length) } public static func endHandFan(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } public static func createHandFan( _ fbb: inout FlatBufferBuilder, length: Int32 = 0 ) -> Offset { let __start = HandFan.startHandFan(&fbb) HandFan.add(length: length, &fbb) return HandFan.endHandFan(&fbb, start: __start) } public func unpack() -> HandFanT { return HandFanT(self) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout HandFanT?) -> Offset { guard var obj = obj else { return Offset() } return pack(&builder, obj: &obj) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout HandFanT) -> Offset { let __root = HandFan.startHandFan(&builder) HandFan.add(length: obj.length, &builder) return HandFan.endHandFan(&builder, start: __root) } public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { var _v = try verifier.visitTable(at: position) try _v.visit(field: VT.length, fieldName: "length", required: false, type: Int32.self) _v.finish() } } extension HandFan: Encodable { enum CodingKeys: String, CodingKey { case length = "length" } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) if length != 0 { try container.encodeIfPresent(length, forKey: .length) } } } public class HandFanT: NativeObject { public var length: Int32 public init(_ _t: borrowing HandFan) { length = _t.length } public init() { length = 0 } public func serialize() -> ByteBuffer { return serialize(type: HandFan.self) } } public struct Movie: FlatBufferVerifiableTable, FlatbuffersVectorInitializable, ObjectAPIPacker { static func validateVersion() { FlatBuffersVersion_25_12_19() } public var __buffer: ByteBuffer! { return _accessor.bb } private var _accessor: Table public static var id: String { "MOVI" } public static func finish(_ fbb: inout FlatBufferBuilder, end: Offset, prefix: Bool = false) { fbb.finish(offset: end, fileId: Movie.id, addPrefix: prefix) } private init(_ t: Table) { _accessor = t } public init(_ bb: ByteBuffer, o: Int32) { _accessor = Table(bb: bb, position: o) } private struct VT { static let mainCharacterType: VOffset = 4 static let mainCharacter: VOffset = 6 static let charactersType: VOffset = 8 static let characters: VOffset = 10 } public var mainCharacterType: Character { let o = _accessor.offset(VT.mainCharacterType); return o == 0 ? .none_ : Character(rawValue: _accessor.readBuffer(of: UInt8.self, at: o)) ?? .none_ } public func mainCharacter(type: T.Type) -> T? { let o = _accessor.offset(VT.mainCharacter); return o == 0 ? nil : _accessor.union(o) } public var charactersType: FlatbufferVector { return _accessor.vector(at: VT.charactersType, byteSize: 1) } public var characters: UnionFlatbufferVector { return _accessor.unionVector(at: VT.characters, byteSize: 4) } public func characters(at index: Int32, type: T.Type) -> T? { let o = _accessor.offset(VT.characters); return o == 0 ? nil : _accessor.directUnion(_accessor.vector(at: o) + index * 4) } public static func startMovie(_ fbb: inout FlatBufferBuilder) -> UOffset { fbb.startTable(with: 4) } public static func add(mainCharacterType: Character, _ fbb: inout FlatBufferBuilder) { fbb.add(element: mainCharacterType.rawValue, def: 0, at: VT.mainCharacterType) } public static func add(mainCharacter: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: mainCharacter, at: VT.mainCharacter) } public static func addVectorOf(charactersType: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: charactersType, at: VT.charactersType) } public static func addVectorOf(characters: Offset, _ fbb: inout FlatBufferBuilder) { fbb.add(offset: characters, at: VT.characters) } public static func endMovie(_ fbb: inout FlatBufferBuilder, start: UOffset) -> Offset { let end = Offset(offset: fbb.endTable(at: start)); return end } public static func createMovie( _ fbb: inout FlatBufferBuilder, mainCharacterType: Character = .none_, mainCharacterOffset mainCharacter: Offset = Offset(), charactersTypeVectorOffset charactersType: Offset = Offset(), charactersVectorOffset characters: Offset = Offset() ) -> Offset { let __start = Movie.startMovie(&fbb) Movie.add(mainCharacterType: mainCharacterType, &fbb) Movie.add(mainCharacter: mainCharacter, &fbb) Movie.addVectorOf(charactersType: charactersType, &fbb) Movie.addVectorOf(characters: characters, &fbb) return Movie.endMovie(&fbb, start: __start) } public func unpack() -> MovieT { return MovieT(self) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MovieT?) -> Offset { guard var obj = obj else { return Offset() } return pack(&builder, obj: &obj) } public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MovieT) -> Offset { let __mainCharacter = obj.mainCharacter?.pack(builder: &builder) ?? Offset() var __characters__: [Offset] = [] for i in obj.characters { guard let off = i?.pack(builder: &builder) else { continue } __characters__.append(off) } let __characters = builder.createVector(ofOffsets: __characters__) let __charactersType = builder.createVector(obj.characters.compactMap { $0?.type }) let __root = Movie.startMovie(&builder) if let o = obj.mainCharacter?.type { Movie.add(mainCharacterType: o, &builder) Movie.add(mainCharacter: __mainCharacter, &builder) } Movie.addVectorOf(charactersType: __charactersType, &builder) Movie.addVectorOf(characters: __characters, &builder) return Movie.endMovie(&builder, start: __root) } public static func verify(_ verifier: inout Verifier, at position: Int, of type: T.Type) throws where T: Verifiable { var _v = try verifier.visitTable(at: position) try _v.visit(unionKey: VT.mainCharacterType, unionField: VT.mainCharacter, unionKeyName: "mainCharacterType", fieldName: "mainCharacter", required: false, completion: { (verifier, key: Character, pos) in switch key { case .none_: break // NOTE - SWIFT doesnt support none case .mulan: try ForwardOffset.verify(&verifier, at: pos, of: Attacker.self) case .rapunzel: try Rapunzel.verify(&verifier, at: pos, of: Rapunzel.self) case .belle: try BookReader.verify(&verifier, at: pos, of: BookReader.self) case .bookfan: try BookReader.verify(&verifier, at: pos, of: BookReader.self) case .other: try ForwardOffset.verify(&verifier, at: pos, of: String.self) case .unused: try ForwardOffset.verify(&verifier, at: pos, of: String.self) } }) try _v.visitUnionVector(unionKey: VT.charactersType, unionField: VT.characters, unionKeyName: "charactersType", fieldName: "characters", required: false, completion: { (verifier, key: Character, pos) in switch key { case .none_: break // NOTE - SWIFT doesnt support none case .mulan: try ForwardOffset.verify(&verifier, at: pos, of: Attacker.self) case .rapunzel: try Rapunzel.verify(&verifier, at: pos, of: Rapunzel.self) case .belle: try BookReader.verify(&verifier, at: pos, of: BookReader.self) case .bookfan: try BookReader.verify(&verifier, at: pos, of: BookReader.self) case .other: try ForwardOffset.verify(&verifier, at: pos, of: String.self) case .unused: try ForwardOffset.verify(&verifier, at: pos, of: String.self) } }) _v.finish() } } extension Movie: Encodable { enum CodingKeys: String, CodingKey { case mainCharacterType = "main_character_type" case mainCharacter = "main_character" case charactersType = "characters_type" case characters = "characters" } public func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) if mainCharacterType != .none_ { try container.encodeIfPresent(mainCharacterType, forKey: .mainCharacterType) } switch mainCharacterType { case .mulan: let _v = mainCharacter(type: Attacker.self) try container.encodeIfPresent(_v, forKey: .mainCharacter) case .rapunzel: let _v = mainCharacter(type: Rapunzel.self) try container.encodeIfPresent(_v, forKey: .mainCharacter) case .belle: let _v = mainCharacter(type: BookReader.self) try container.encodeIfPresent(_v, forKey: .mainCharacter) case .bookfan: let _v = mainCharacter(type: BookReader.self) try container.encodeIfPresent(_v, forKey: .mainCharacter) case .other: let _v = mainCharacter(type: String.self) try container.encodeIfPresent(_v, forKey: .mainCharacter) case .unused: let _v = mainCharacter(type: String.self) try container.encodeIfPresent(_v, forKey: .mainCharacter) default: break; } try container.encode(charactersType, forKey: .charactersType) var contentEncoder = container.nestedUnkeyedContainer(forKey: .characters) let _characters = charactersType for index in _characters.startIndex..<_characters.endIndex { switch _characters[index] { case .mulan: let _v = characters(at: Int32(index), type: Attacker.self) try contentEncoder.encode(_v) case .rapunzel: let _v = characters(at: Int32(index), type: Rapunzel.self) try contentEncoder.encode(_v) case .belle: let _v = characters(at: Int32(index), type: BookReader.self) try contentEncoder.encode(_v) case .bookfan: let _v = characters(at: Int32(index), type: BookReader.self) try contentEncoder.encode(_v) case .other: let _v = characters(at: Int32(index), type: String.self) try contentEncoder.encode(_v) case .unused: let _v = characters(at: Int32(index), type: String.self) try contentEncoder.encode(_v) default: break; } } } } public class MovieT: NativeObject { public var mainCharacter: CharacterUnion? public var characters: [CharacterUnion?] public init(_ _t: borrowing Movie) { switch _t.mainCharacterType { case .mulan: let _v = _t.mainCharacter(type: Attacker.self) mainCharacter = CharacterUnion(_v?.unpack(), type: .mulan) case .rapunzel: let _v = _t.mainCharacter(type: Rapunzel_Mutable.self) mainCharacter = CharacterUnion(_v?.unpack(), type: .rapunzel) case .belle: let _v = _t.mainCharacter(type: BookReader_Mutable.self) mainCharacter = CharacterUnion(_v?.unpack(), type: .belle) case .bookfan: let _v = _t.mainCharacter(type: BookReader_Mutable.self) mainCharacter = CharacterUnion(_v?.unpack(), type: .bookfan) case .other: let _v = _t.mainCharacter(type: String.self) mainCharacter = CharacterUnion(_v?.unpack(), type: .other) case .unused: let _v = _t.mainCharacter(type: String.self) mainCharacter = CharacterUnion(_v?.unpack(), type: .unused) default: break } characters = [] let _charactersType = _t.charactersType for index in _charactersType.startIndex..<_charactersType.endIndex { switch _t.charactersType[index] { case .mulan: let _v = _t.characters(at: Int32(index), type: Attacker.self) characters.append(CharacterUnion(_v?.unpack(), type: .mulan)) case .rapunzel: let _v = _t.characters(at: Int32(index), type: Rapunzel_Mutable.self) characters.append(CharacterUnion(_v?.unpack(), type: .rapunzel)) case .belle: let _v = _t.characters(at: Int32(index), type: BookReader_Mutable.self) characters.append(CharacterUnion(_v?.unpack(), type: .belle)) case .bookfan: let _v = _t.characters(at: Int32(index), type: BookReader_Mutable.self) characters.append(CharacterUnion(_v?.unpack(), type: .bookfan)) case .other: let _v = _t.characters(at: Int32(index), type: String.self) characters.append(CharacterUnion(_v?.unpack(), type: .other)) case .unused: let _v = _t.characters(at: Int32(index), type: String.self) characters.append(CharacterUnion(_v?.unpack(), type: .unused)) default: break } } } public init() { characters = [] } public func serialize() -> ByteBuffer { return serialize(type: Movie.self) } }