[Swift] Inline arrays (#8755)

Implements InlineArrays which allow us to use Flatbuffers arrays within
Structs natively, and also implements FlatbufferVectors as a secondary API
when using mutable Structs

Fixes mutations within fixed sizes arrays

Adds tests and remove inout and mutating from generated objects in favor of borrowing

---------

Co-authored-by: Wouter van Oortmerssen <aardappel@gmail.com>
This commit is contained in:
mustiikhalil
2025-11-15 00:33:16 +01:00
committed by GitHub
parent 7150dfb5c4
commit cbf0850828
18 changed files with 995 additions and 359 deletions

View File

@@ -88,10 +88,9 @@ public struct MoreDefaults: FlatBufferTable, FlatbuffersVectorInitializable, Ver
MoreDefaults.addVectorOf(bools: bools, &fbb)
return MoreDefaults.endMoreDefaults(&fbb, start: __start)
}
public mutating func unpack() -> MoreDefaultsT {
return MoreDefaultsT(&self)
public func unpack() -> MoreDefaultsT {
return MoreDefaultsT(self)
}
public static func pack(_ builder: inout FlatBufferBuilder, obj: inout MoreDefaultsT?) -> Offset {
guard var obj = obj else { return Offset() }
@@ -169,7 +168,7 @@ public class MoreDefaultsT: NativeObject {
public var abcs: [ABC]
public var bools: [Bool]
public init(_ _t: inout MoreDefaults) {
public init(_ _t: borrowing MoreDefaults) {
ints = []
ints.append(contentsOf: _t.ints)
floats = []