• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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