mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-27 06:02:19 +00:00
Required is now implemented in swift (#5952)
This commit is contained in:
@@ -367,8 +367,16 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
"inout " +
|
"inout " +
|
||||||
ObjectAPIName("{{STRUCTNAME}}") + "?) -> Offset<UOffset> {";
|
ObjectAPIName("{{STRUCTNAME}}") + "?) -> Offset<UOffset> {";
|
||||||
Indent();
|
Indent();
|
||||||
code_ += "guard let obj = obj else { return Offset<UOffset>() }";
|
code_ += "guard var obj = obj else { return Offset<UOffset>() }";
|
||||||
|
code_ += "return pack(&builder, obj: &obj)";
|
||||||
|
Outdent();
|
||||||
|
code_ += "}";
|
||||||
code_ += "";
|
code_ += "";
|
||||||
|
code_ +=
|
||||||
|
"public static func pack(_ builder: inout FlatBufferBuilder, obj: "
|
||||||
|
"inout " +
|
||||||
|
ObjectAPIName("{{STRUCTNAME}}") + ") -> Offset<UOffset> {";
|
||||||
|
Indent();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GenerateObjectAPIStructExtension(const StructDef &struct_def) {
|
void GenerateObjectAPIStructExtension(const StructDef &struct_def) {
|
||||||
@@ -581,10 +589,13 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string is_required = field.required ? "!" : "?";
|
||||||
|
auto required_reader = field.required ? "return " : const_string;
|
||||||
|
|
||||||
if (IsStruct(field.value.type) && field.value.type.struct_def->fixed) {
|
if (IsStruct(field.value.type) && field.value.type.struct_def->fixed) {
|
||||||
code_.SetValue("VALUETYPE", GenType(field.value.type));
|
code_.SetValue("VALUETYPE", GenType(field.value.type));
|
||||||
code_.SetValue("CONSTANT", "nil");
|
code_.SetValue("CONSTANT", "nil");
|
||||||
code_ += GenReaderMainBody("?") + GenOffset() + const_string +
|
code_ += GenReaderMainBody(is_required) + GenOffset() + required_reader +
|
||||||
GenConstructor("o + {{ACCESS}}.postion");
|
GenConstructor("o + {{ACCESS}}.postion");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -592,18 +603,19 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
case BASE_TYPE_STRUCT:
|
case BASE_TYPE_STRUCT:
|
||||||
code_.SetValue("VALUETYPE", GenType(field.value.type));
|
code_.SetValue("VALUETYPE", GenType(field.value.type));
|
||||||
code_.SetValue("CONSTANT", "nil");
|
code_.SetValue("CONSTANT", "nil");
|
||||||
code_ += GenReaderMainBody("?") + GenOffset() + const_string +
|
code_ += GenReaderMainBody(is_required) + GenOffset() +
|
||||||
|
required_reader +
|
||||||
GenConstructor(GenIndirect("o + {{ACCESS}}.postion"));
|
GenConstructor(GenIndirect("o + {{ACCESS}}.postion"));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BASE_TYPE_STRING:
|
case BASE_TYPE_STRING:
|
||||||
code_.SetValue("VALUETYPE", GenType(field.value.type));
|
code_.SetValue("VALUETYPE", GenType(field.value.type));
|
||||||
code_.SetValue("CONSTANT", "nil");
|
code_.SetValue("CONSTANT", "nil");
|
||||||
code_ += GenReaderMainBody("?") + GenOffset() + const_string +
|
code_ += GenReaderMainBody(is_required) + GenOffset() +
|
||||||
"{{ACCESS}}.string(at: o) }";
|
required_reader + "{{ACCESS}}.string(at: o) }";
|
||||||
code_ +=
|
code_ += "public var {{VALUENAME}}SegmentArray: [UInt8]" + is_required +
|
||||||
"public var {{VALUENAME}}SegmentArray: [UInt8]? { return "
|
" { return "
|
||||||
"{{ACCESS}}.getVector(at: {{TABLEOFFSET}}.{{OFFSET}}.v) }";
|
"{{ACCESS}}.getVector(at: {{TABLEOFFSET}}.{{OFFSET}}.v) }";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BASE_TYPE_ARRAY: FLATBUFFERS_FALLTHROUGH(); // fall thru
|
case BASE_TYPE_ARRAY: FLATBUFFERS_FALLTHROUGH(); // fall thru
|
||||||
@@ -614,8 +626,9 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
code_.SetValue("CONSTANT", "nil");
|
code_.SetValue("CONSTANT", "nil");
|
||||||
code_ +=
|
code_ +=
|
||||||
"public func {{VALUENAME}}<T: FlatBufferObject>(type: "
|
"public func {{VALUENAME}}<T: FlatBufferObject>(type: "
|
||||||
"T.Type) -> T? { " +
|
"T.Type) -> T" +
|
||||||
GenOffset() + const_string + "{{ACCESS}}.union(o) }";
|
is_required + " { " + GenOffset() + required_reader +
|
||||||
|
"{{ACCESS}}.union(o) }";
|
||||||
break;
|
break;
|
||||||
default: FLATBUFFERS_ASSERT(0);
|
default: FLATBUFFERS_ASSERT(0);
|
||||||
}
|
}
|
||||||
@@ -771,8 +784,8 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
code_ += "case {{KEY}} = {{VALUE}}";
|
code_ += "case {{KEY}} = {{VALUE}}";
|
||||||
}
|
}
|
||||||
code_ += "\n";
|
code_ += "\n";
|
||||||
AddMinOrMaxEnumValue(enum_def.MaxValue()->name, "max");
|
AddMinOrMaxEnumValue(Name(*enum_def.MaxValue()), "max");
|
||||||
AddMinOrMaxEnumValue(enum_def.MinValue()->name, "min");
|
AddMinOrMaxEnumValue(Name(*enum_def.MinValue()), "min");
|
||||||
Outdent();
|
Outdent();
|
||||||
code_ += "}\n";
|
code_ += "}\n";
|
||||||
if (parser_.opts.generate_object_based_api && enum_def.is_union) {
|
if (parser_.opts.generate_object_based_api && enum_def.is_union) {
|
||||||
@@ -871,7 +884,13 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
case BASE_TYPE_STRING: {
|
case BASE_TYPE_STRING: {
|
||||||
unpack_body.push_back("{{STRUCTNAME}}." + body + "__" + name +
|
unpack_body.push_back("{{STRUCTNAME}}." + body + "__" + name +
|
||||||
builder);
|
builder);
|
||||||
BuildingOptionalObjects(name, "String", "builder.create(string: s)");
|
if (field.required) {
|
||||||
|
code_ +=
|
||||||
|
"let __" + name + " = builder.create(string: obj." + name + ")";
|
||||||
|
} else {
|
||||||
|
BuildingOptionalObjects(name, "String",
|
||||||
|
"builder.create(string: s)");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BASE_TYPE_UTYPE: break;
|
case BASE_TYPE_UTYPE: break;
|
||||||
@@ -986,6 +1005,7 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
auto type = GenType(field.value.type);
|
auto type = GenType(field.value.type);
|
||||||
code_.SetValue("VALUENAME", name);
|
code_.SetValue("VALUENAME", name);
|
||||||
code_.SetValue("VALUETYPE", type);
|
code_.SetValue("VALUETYPE", type);
|
||||||
|
std::string is_required = field.required ? "" : "?";
|
||||||
|
|
||||||
switch (field.value.type.base_type) {
|
switch (field.value.type.base_type) {
|
||||||
case BASE_TYPE_STRUCT: {
|
case BASE_TYPE_STRUCT: {
|
||||||
@@ -994,10 +1014,13 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
buffer_constructor.push_back("var __" + name + " = _t." + name);
|
buffer_constructor.push_back("var __" + name + " = _t." + name);
|
||||||
auto optional =
|
auto optional =
|
||||||
(field.value.type.struct_def && field.value.type.struct_def->fixed);
|
(field.value.type.struct_def && field.value.type.struct_def->fixed);
|
||||||
std::string question_mark = (optional && is_fixed ? "" : "?");
|
std::string question_mark =
|
||||||
|
(field.required || (optional && is_fixed) ? "" : "?");
|
||||||
|
|
||||||
code_ += "var {{VALUENAME}}: {{VALUETYPE}}" + question_mark;
|
code_ += "var {{VALUENAME}}: {{VALUETYPE}}" + question_mark;
|
||||||
buffer_constructor.push_back("" + name + " = __" + name +
|
buffer_constructor.push_back("" + name + " = __" + name +
|
||||||
question_mark + ".unpack()");
|
(field.required ? "!" : question_mark) +
|
||||||
|
".unpack()");
|
||||||
base_constructor.push_back("" + name + " = " + type + "()");
|
base_constructor.push_back("" + name + " = " + type + "()");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1008,8 +1031,9 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BASE_TYPE_STRING: {
|
case BASE_TYPE_STRING: {
|
||||||
code_ += "var {{VALUENAME}}: String?";
|
code_ += "var {{VALUENAME}}: String" + is_required;
|
||||||
buffer_constructor.push_back(name + " = _t." + name);
|
buffer_constructor.push_back(name + " = _t." + name);
|
||||||
|
if (field.required) base_constructor.push_back(name + " = \"\"");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case BASE_TYPE_UTYPE: break;
|
case BASE_TYPE_UTYPE: break;
|
||||||
@@ -1163,9 +1187,7 @@ class SwiftGenerator : public BaseGenerator {
|
|||||||
|
|
||||||
void AddMinOrMaxEnumValue(const std::string &str, const std::string &type) {
|
void AddMinOrMaxEnumValue(const std::string &str, const std::string &type) {
|
||||||
auto current_value = str;
|
auto current_value = str;
|
||||||
std::transform(current_value.begin(), current_value.end(),
|
code_.SetValue(type, current_value);
|
||||||
current_value.begin(), LowerCase);
|
|
||||||
code_.SetValue(type, EscapeKeyword(MakeCamel(current_value, false)));
|
|
||||||
code_ += "public static var " + type + ": {{ENUM_NAME}} { return .{{" +
|
code_ += "public static var " + type + ": {{ENUM_NAME}} { return .{{" +
|
||||||
type + "}} }";
|
type + "}} }";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Pod::Spec.new do |s|
|
Pod::Spec.new do |s|
|
||||||
s.name = 'FlatBuffers'
|
s.name = 'FlatBuffers'
|
||||||
s.version = '0.4.0'
|
s.version = '0.5.1'
|
||||||
s.summary = 'FlatBuffers: Memory Efficient Serialization Library'
|
s.summary = 'FlatBuffers: Memory Efficient Serialization Library'
|
||||||
|
|
||||||
s.description = "FlatBuffers is a cross platform serialization library architected for
|
s.description = "FlatBuffers is a cross platform serialization library architected for
|
||||||
|
|||||||
@@ -164,8 +164,11 @@ public struct Test: Readable {
|
|||||||
return TestT(&self)
|
return TestT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout TestT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout TestT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout TestT) -> Offset<UOffset> {
|
||||||
return builder.create(struct: createTest(a: obj.a, b: obj.b), type: Test.self)
|
return builder.create(struct: createTest(a: obj.a, b: obj.b), type: Test.self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -212,8 +215,11 @@ public struct Vec3: Readable {
|
|||||||
return Vec3T(&self)
|
return Vec3T(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout Vec3T?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout Vec3T?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout Vec3T) -> Offset<UOffset> {
|
||||||
return builder.create(struct: createVec3(x: obj.x, y: obj.y, z: obj.z, test1: obj.test1, test2: obj.test2, test3a: obj.test3.a, test3b: obj.test3.b), type: Vec3.self)
|
return builder.create(struct: createVec3(x: obj.x, y: obj.y, z: obj.z, test1: obj.test1, test2: obj.test2, test3a: obj.test3.a, test3b: obj.test3.b), type: Vec3.self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -267,8 +273,11 @@ public struct Ability: Readable {
|
|||||||
return AbilityT(&self)
|
return AbilityT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AbilityT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AbilityT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AbilityT) -> Offset<UOffset> {
|
||||||
return builder.create(struct: createAbility(id: obj.id, distance: obj.distance), type: Ability.self)
|
return builder.create(struct: createAbility(id: obj.id, distance: obj.distance), type: Ability.self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -343,8 +352,11 @@ public struct InParentNamespace: FlatBufferObject {
|
|||||||
return InParentNamespaceT(&self)
|
return InParentNamespaceT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout InParentNamespaceT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout InParentNamespaceT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout InParentNamespaceT) -> Offset<UOffset> {
|
||||||
let __root = InParentNamespace.startInParentNamespace(&builder)
|
let __root = InParentNamespace.startInParentNamespace(&builder)
|
||||||
return InParentNamespace.endInParentNamespace(&builder, start: __root)
|
return InParentNamespace.endInParentNamespace(&builder, start: __root)
|
||||||
}
|
}
|
||||||
@@ -382,8 +394,11 @@ public struct Monster: FlatBufferObject {
|
|||||||
return MonsterT(&self)
|
return MonsterT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MonsterT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MonsterT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MonsterT) -> Offset<UOffset> {
|
||||||
let __root = Monster.startMonster(&builder)
|
let __root = Monster.startMonster(&builder)
|
||||||
return Monster.endMonster(&builder, start: __root)
|
return Monster.endMonster(&builder, start: __root)
|
||||||
}
|
}
|
||||||
@@ -442,8 +457,11 @@ public struct TestSimpleTableWithEnum: FlatBufferObject {
|
|||||||
return TestSimpleTableWithEnumT(&self)
|
return TestSimpleTableWithEnumT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout TestSimpleTableWithEnumT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout TestSimpleTableWithEnumT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout TestSimpleTableWithEnumT) -> Offset<UOffset> {
|
||||||
let __root = TestSimpleTableWithEnum.startTestSimpleTableWithEnum(&builder)
|
let __root = TestSimpleTableWithEnum.startTestSimpleTableWithEnum(&builder)
|
||||||
TestSimpleTableWithEnum.add(color: obj.color, &builder)
|
TestSimpleTableWithEnum.add(color: obj.color, &builder)
|
||||||
return TestSimpleTableWithEnum.endTestSimpleTableWithEnum(&builder, start: __root)
|
return TestSimpleTableWithEnum.endTestSimpleTableWithEnum(&builder, start: __root)
|
||||||
@@ -510,8 +528,11 @@ public struct Stat: FlatBufferObject {
|
|||||||
return StatT(&self)
|
return StatT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout StatT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout StatT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout StatT) -> Offset<UOffset> {
|
||||||
let __id: Offset<String>
|
let __id: Offset<String>
|
||||||
if let s = obj.id {
|
if let s = obj.id {
|
||||||
__id = builder.create(string: s)
|
__id = builder.create(string: s)
|
||||||
@@ -604,8 +625,11 @@ public struct Referrable: FlatBufferObject {
|
|||||||
return ReferrableT(&self)
|
return ReferrableT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout ReferrableT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout ReferrableT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout ReferrableT) -> Offset<UOffset> {
|
||||||
let __root = Referrable.startReferrable(&builder)
|
let __root = Referrable.startReferrable(&builder)
|
||||||
Referrable.add(id: obj.id, &builder)
|
Referrable.add(id: obj.id, &builder)
|
||||||
return Referrable.endReferrable(&builder, start: __root)
|
return Referrable.endReferrable(&builder, start: __root)
|
||||||
@@ -696,8 +720,8 @@ public struct Monster: FlatBufferObject {
|
|||||||
@discardableResult public func mutate(mana: Int16) -> Bool {let o = _accessor.offset(VTOFFSET.mana.v); return _accessor.mutate(mana, index: o) }
|
@discardableResult public func mutate(mana: Int16) -> Bool {let o = _accessor.offset(VTOFFSET.mana.v); return _accessor.mutate(mana, index: o) }
|
||||||
public var hp: Int16 { let o = _accessor.offset(VTOFFSET.hp.v); return o == 0 ? 100 : _accessor.readBuffer(of: Int16.self, at: o) }
|
public var hp: Int16 { let o = _accessor.offset(VTOFFSET.hp.v); return o == 0 ? 100 : _accessor.readBuffer(of: Int16.self, at: o) }
|
||||||
@discardableResult public func mutate(hp: Int16) -> Bool {let o = _accessor.offset(VTOFFSET.hp.v); return _accessor.mutate(hp, index: o) }
|
@discardableResult public func mutate(hp: Int16) -> Bool {let o = _accessor.offset(VTOFFSET.hp.v); return _accessor.mutate(hp, index: o) }
|
||||||
public var name: String? { let o = _accessor.offset(VTOFFSET.name.v); return o == 0 ? nil : _accessor.string(at: o) }
|
public var name: String! { let o = _accessor.offset(VTOFFSET.name.v); return _accessor.string(at: o) }
|
||||||
public var nameSegmentArray: [UInt8]? { return _accessor.getVector(at: VTOFFSET.name.v) }
|
public var nameSegmentArray: [UInt8]! { return _accessor.getVector(at: VTOFFSET.name.v) }
|
||||||
public var inventoryCount: Int32 { let o = _accessor.offset(VTOFFSET.inventory.v); return o == 0 ? 0 : _accessor.vector(count: o) }
|
public var inventoryCount: Int32 { let o = _accessor.offset(VTOFFSET.inventory.v); return o == 0 ? 0 : _accessor.vector(count: o) }
|
||||||
public func inventory(at index: Int32) -> UInt8 { let o = _accessor.offset(VTOFFSET.inventory.v); return o == 0 ? 0 : _accessor.directRead(of: UInt8.self, offset: _accessor.vector(at: o) + index * 1) }
|
public func inventory(at index: Int32) -> UInt8 { let o = _accessor.offset(VTOFFSET.inventory.v); return o == 0 ? 0 : _accessor.directRead(of: UInt8.self, offset: _accessor.vector(at: o) + index * 1) }
|
||||||
public var inventory: [UInt8] { return _accessor.getVector(at: VTOFFSET.inventory.v) ?? [] }
|
public var inventory: [UInt8] { return _accessor.getVector(at: VTOFFSET.inventory.v) ?? [] }
|
||||||
@@ -981,15 +1005,12 @@ public struct Monster: FlatBufferObject {
|
|||||||
return MonsterT(&self)
|
return MonsterT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MonsterT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MonsterT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
let __name: Offset<String>
|
}
|
||||||
if let s = obj.name {
|
|
||||||
__name = builder.create(string: s)
|
|
||||||
} else {
|
|
||||||
__name = Offset<String>()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MonsterT) -> Offset<UOffset> {
|
||||||
|
let __name = builder.create(string: obj.name)
|
||||||
let __inventory = builder.createVector(obj.inventory)
|
let __inventory = builder.createVector(obj.inventory)
|
||||||
let __test = obj.test?.pack(builder: &builder) ?? Offset()
|
let __test = obj.test?.pack(builder: &builder) ?? Offset()
|
||||||
var __test4__: [UnsafeMutableRawPointer] = []
|
var __test4__: [UnsafeMutableRawPointer] = []
|
||||||
@@ -1108,7 +1129,7 @@ public class MonsterT: NativeTable {
|
|||||||
var pos: MyGame.Example.Vec3T?
|
var pos: MyGame.Example.Vec3T?
|
||||||
var mana: Int16
|
var mana: Int16
|
||||||
var hp: Int16
|
var hp: Int16
|
||||||
var name: String?
|
var name: String
|
||||||
var inventory: [UInt8]
|
var inventory: [UInt8]
|
||||||
var color: MyGame.Example.Color
|
var color: MyGame.Example.Color
|
||||||
var test: Any_Union?
|
var test: Any_Union?
|
||||||
@@ -1300,6 +1321,7 @@ public class MonsterT: NativeTable {
|
|||||||
pos = MyGame.Example.Vec3T()
|
pos = MyGame.Example.Vec3T()
|
||||||
mana = 150
|
mana = 150
|
||||||
hp = 100
|
hp = 100
|
||||||
|
name = ""
|
||||||
inventory = []
|
inventory = []
|
||||||
color = .blue
|
color = .blue
|
||||||
test4 = []
|
test4 = []
|
||||||
@@ -1446,8 +1468,11 @@ public struct TypeAliases: FlatBufferObject {
|
|||||||
return TypeAliasesT(&self)
|
return TypeAliasesT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout TypeAliasesT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout TypeAliasesT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout TypeAliasesT) -> Offset<UOffset> {
|
||||||
let __v8 = builder.createVector(obj.v8)
|
let __v8 = builder.createVector(obj.v8)
|
||||||
let __vf64 = builder.createVector(obj.vf64)
|
let __vf64 = builder.createVector(obj.vf64)
|
||||||
let __root = TypeAliases.startTypeAliases(&builder)
|
let __root = TypeAliases.startTypeAliases(&builder)
|
||||||
|
|||||||
@@ -62,8 +62,11 @@ public struct Rapunzel: Readable {
|
|||||||
return RapunzelT(&self)
|
return RapunzelT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout RapunzelT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout RapunzelT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout RapunzelT) -> Offset<UOffset> {
|
||||||
return builder.create(struct: createRapunzel(hairLength: obj.hairLength), type: Rapunzel.self)
|
return builder.create(struct: createRapunzel(hairLength: obj.hairLength), type: Rapunzel.self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -99,8 +102,11 @@ public struct BookReader: Readable {
|
|||||||
return BookReaderT(&self)
|
return BookReaderT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout BookReaderT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout BookReaderT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout BookReaderT) -> Offset<UOffset> {
|
||||||
return builder.create(struct: createBookReader(booksRead: obj.booksRead), type: BookReader.self)
|
return builder.create(struct: createBookReader(booksRead: obj.booksRead), type: BookReader.self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -167,8 +173,11 @@ public struct Attacker: FlatBufferObject {
|
|||||||
return AttackerT(&self)
|
return AttackerT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AttackerT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AttackerT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout AttackerT) -> Offset<UOffset> {
|
||||||
let __root = Attacker.startAttacker(&builder)
|
let __root = Attacker.startAttacker(&builder)
|
||||||
Attacker.add(swordAttackDamage: obj.swordAttackDamage, &builder)
|
Attacker.add(swordAttackDamage: obj.swordAttackDamage, &builder)
|
||||||
return Attacker.endAttacker(&builder, start: __root)
|
return Attacker.endAttacker(&builder, start: __root)
|
||||||
@@ -239,8 +248,11 @@ public struct Movie: FlatBufferObject {
|
|||||||
return MovieT(&self)
|
return MovieT(&self)
|
||||||
}
|
}
|
||||||
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MovieT?) -> Offset<UOffset> {
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MovieT?) -> Offset<UOffset> {
|
||||||
guard let obj = obj else { return Offset<UOffset>() }
|
guard var obj = obj else { return Offset<UOffset>() }
|
||||||
|
return pack(&builder, obj: &obj)
|
||||||
|
}
|
||||||
|
|
||||||
|
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MovieT) -> Offset<UOffset> {
|
||||||
let __mainCharacter = obj.mainCharacter?.pack(builder: &builder) ?? Offset()
|
let __mainCharacter = obj.mainCharacter?.pack(builder: &builder) ?? Offset()
|
||||||
var __characters__: [Offset<UOffset>] = []
|
var __characters__: [Offset<UOffset>] = []
|
||||||
for i in obj.characters {
|
for i in obj.characters {
|
||||||
|
|||||||
Reference in New Issue
Block a user