mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-29 12:12:01 +00:00
Improves documentation, and adding DocC (#6784)
Finished documenting flatbuffersbuilder Replaces swift 5.5 with 5.2 packages Starts building the tutorial for xcode 13 Finishes building the tutorial for xcode 13 Removes docc files from old swift versions Updates swift style guide
This commit is contained in:
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
enum Color:byte { red, green, blue }
|
||||
@@ -0,0 +1,6 @@
|
||||
enum Color:byte { red, green, blue }
|
||||
|
||||
struct Vec3 {
|
||||
x:float;
|
||||
y:float;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
enum Color:byte { red, green, blue }
|
||||
|
||||
struct Vec3 {
|
||||
x:float;
|
||||
y:float;
|
||||
}
|
||||
|
||||
table Monster {
|
||||
pos:Vec3;
|
||||
color:Color = Blue;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
enum Color:byte { red, green, blue }
|
||||
|
||||
struct Vec3 {
|
||||
x:float;
|
||||
y:float;
|
||||
}
|
||||
|
||||
table Monster {
|
||||
pos:Vec3;
|
||||
color:Color = Blue;
|
||||
|
||||
mana:short = 150;
|
||||
hp:short = 100;
|
||||
name:string;
|
||||
equipped:Equipment;
|
||||
weapons:[Weapon];
|
||||
path:[Vec3];
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
enum Color:byte { red, green, blue }
|
||||
|
||||
union Equipment { Weapon } // Optionally add more tables.
|
||||
|
||||
struct Vec3 {
|
||||
x:float;
|
||||
y:float;
|
||||
}
|
||||
|
||||
table Monster {
|
||||
pos:Vec3;
|
||||
color:Color = Blue;
|
||||
|
||||
mana:short = 150;
|
||||
hp:short = 100;
|
||||
name:string;
|
||||
equipped:Equipment;
|
||||
weapons:[Weapon];
|
||||
path:[Vec3];
|
||||
}
|
||||
|
||||
table Weapon {
|
||||
name:string;
|
||||
damage:short;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
enum Color:byte { red, green, blue }
|
||||
|
||||
union Equipment { Weapon } // Optionally add more tables.
|
||||
|
||||
struct Vec3 {
|
||||
x:float;
|
||||
y:float;
|
||||
}
|
||||
|
||||
table Monster {
|
||||
pos:Vec3;
|
||||
color:Color = Blue;
|
||||
|
||||
mana:short = 150;
|
||||
hp:short = 100;
|
||||
name:string;
|
||||
equipped:Equipment;
|
||||
weapons:[Weapon];
|
||||
path:[Vec3];
|
||||
}
|
||||
|
||||
table Weapon {
|
||||
name:string;
|
||||
damage:short;
|
||||
}
|
||||
|
||||
root_type Monster; // flatc --swift monster.fbs
|
||||
@@ -0,0 +1 @@
|
||||
import Foundation
|
||||
@@ -0,0 +1,71 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a `FlatBufferBuilder`, which will be used to serialize objects
|
||||
let builder = FlatBufferBuilder(initialSize: 1024)
|
||||
|
||||
let weapon1Name = builder.create(string: "Sword")
|
||||
let weapon2Name = builder.create(string: "Axe")
|
||||
|
||||
// start creating the weapon by calling startWeapon
|
||||
let weapon1Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon1Name, &builder)
|
||||
Weapon.add(damage: 3, &builder)
|
||||
// end the object by passing the start point for the weapon 1
|
||||
let sword = Weapon.endWeapon(&builder, start: weapon1Start)
|
||||
|
||||
let weapon2Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon2Name, &builder)
|
||||
Weapon.add(damage: 5, &builder)
|
||||
let axe = Weapon.endWeapon(&builder, start: weapon2Start)
|
||||
|
||||
// Create a FlatBuffer `vector` that contains offsets to the sword and axe
|
||||
// we created above.
|
||||
let weaponsOffset = builder.createVector(ofOffsets: [sword, axe])
|
||||
|
||||
// Name of the Monster.
|
||||
let name = builder.create(string: "Orc")
|
||||
|
||||
let pathOffset = fbb.createVector(ofStructs: [
|
||||
Vec3(x: 0, y: 0),
|
||||
Vec3(x: 5, y: 5),
|
||||
])
|
||||
|
||||
// startVector(len, elementSize: MemoryLayout<Offset>.size)
|
||||
// for o in offsets.reversed() {
|
||||
// push(element: o)
|
||||
// }
|
||||
// endVector(len: len)
|
||||
|
||||
let orc = Monster.createMonster(
|
||||
&builder,
|
||||
pos: Vec3(x: 1, y: 2),
|
||||
hp: 300,
|
||||
nameOffset: name,
|
||||
color: .red,
|
||||
weaponsVectorOffset: weaponsOffset,
|
||||
equippedType: .weapon,
|
||||
equippedOffset: axe,
|
||||
pathOffset: pathOffset)
|
||||
|
||||
// let start = Monster.startMonster(&builder)
|
||||
// Monster.add(pos: Vec3(x: 1, y: 2), &builder)
|
||||
// Monster.add(hp: 300, &builder)
|
||||
// Monster.add(name: name, &builder)
|
||||
// Monster.add(color: .red, &builder)
|
||||
// Monster.addVectorOf(weapons: weaponsOffset, &builder)
|
||||
// Monster.add(equippedType: .weapon, &builder)
|
||||
// Monster.addVectorOf(paths: weaponsOffset, &builder)
|
||||
// Monster.add(equipped: axe, &builder)
|
||||
// var orc = Monster.endMonster(&builder, start: start)
|
||||
|
||||
// Call `finish(offset:)` to instruct the builder that this monster is complete.
|
||||
builder.finish(offset: orc)
|
||||
// This must be called after `finish()`.
|
||||
// `sizedByteArray` returns the finished buf of type [UInt8].
|
||||
let buf = builder.sizedByteArray
|
||||
|
||||
// or you can use to get an object of type Data
|
||||
let bufData = ByteBuffer(data: builder.sizedBuffer)
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a ByteBuffer(:) from an [UInt8] or Data()
|
||||
let buf = [] // Get your data
|
||||
|
||||
// Get an accessor to the root object inside the buffer.
|
||||
let monster: Monster = try! getCheckedRoot(byteBuffer: ByteBuffer(bytes: buf))
|
||||
// let monster: Monster = getRoot(byteBuffer: ByteBuffer(bytes: buf))
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a ByteBuffer(:) from an [UInt8] or Data()
|
||||
let buf = [] // Get your data
|
||||
|
||||
// Get an accessor to the root object inside the buffer.
|
||||
let monster: Monster = try! getCheckedRoot(byteBuffer: ByteBuffer(bytes: buf))
|
||||
// let monster: Monster = getRoot(byteBuffer: ByteBuffer(bytes: buf))
|
||||
|
||||
let hp = monster.hp
|
||||
let mana = monster.mana
|
||||
let name = monster.name // returns an optional string
|
||||
|
||||
let pos = monster.pos
|
||||
let x = pos.x
|
||||
let y = pos.y
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a ByteBuffer(:) from an [UInt8] or Data()
|
||||
let buf = [] // Get your data
|
||||
|
||||
// Get an accessor to the root object inside the buffer.
|
||||
let monster: Monster = try! getCheckedRoot(byteBuffer: ByteBuffer(bytes: buf))
|
||||
// let monster: Monster = getRoot(byteBuffer: ByteBuffer(bytes: buf))
|
||||
|
||||
let hp = monster.hp
|
||||
let mana = monster.mana
|
||||
let name = monster.name // returns an optional string
|
||||
|
||||
let pos = monster.pos
|
||||
let x = pos.x
|
||||
let y = pos.y
|
||||
|
||||
// Get and check if the monster has an equipped item
|
||||
if monster.equippedType == .weapon {
|
||||
let _weapon = monster.equipped(type: Weapon.self)
|
||||
let name = _weapon.name // should return "Axe"
|
||||
let dmg = _weapon.damage // should return 5
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
@@ -0,0 +1,7 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a `FlatBufferBuilder`, which will be used to serialize objects
|
||||
let builder = FlatBufferBuilder(initialSize: 1024)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a `FlatBufferBuilder`, which will be used to serialize objects
|
||||
let builder = FlatBufferBuilder(initialSize: 1024)
|
||||
|
||||
let weapon1Name = builder.create(string: "Sword")
|
||||
let weapon2Name = builder.create(string: "Axe")
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a `FlatBufferBuilder`, which will be used to serialize objects
|
||||
let builder = FlatBufferBuilder(initialSize: 1024)
|
||||
|
||||
let weapon1Name = builder.create(string: "Sword")
|
||||
let weapon2Name = builder.create(string: "Axe")
|
||||
|
||||
// start creating the weapon by calling startWeapon
|
||||
let weapon1Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon1Name, &builder)
|
||||
Weapon.add(damage: 3, &builder)
|
||||
// end the object by passing the start point for the weapon 1
|
||||
let sword = Weapon.endWeapon(&builder, start: weapon1Start)
|
||||
|
||||
let weapon2Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon2Name, &builder)
|
||||
Weapon.add(damage: 5, &builder)
|
||||
let axe = Weapon.endWeapon(&builder, start: weapon2Start)
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a `FlatBufferBuilder`, which will be used to serialize objects
|
||||
let builder = FlatBufferBuilder(initialSize: 1024)
|
||||
|
||||
let weapon1Name = builder.create(string: "Sword")
|
||||
let weapon2Name = builder.create(string: "Axe")
|
||||
|
||||
// start creating the weapon by calling startWeapon
|
||||
let weapon1Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon1Name, &builder)
|
||||
Weapon.add(damage: 3, &builder)
|
||||
// end the object by passing the start point for the weapon 1
|
||||
let sword = Weapon.endWeapon(&builder, start: weapon1Start)
|
||||
|
||||
let weapon2Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon2Name, &builder)
|
||||
Weapon.add(damage: 5, &builder)
|
||||
let axe = Weapon.endWeapon(&builder, start: weapon2Start)
|
||||
|
||||
// Create a FlatBuffer `vector` that contains offsets to the sword and axe
|
||||
// we created above.
|
||||
let weaponsOffset = builder.createVector(ofOffsets: [sword, axe])
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a `FlatBufferBuilder`, which will be used to serialize objects
|
||||
let builder = FlatBufferBuilder(initialSize: 1024)
|
||||
|
||||
let weapon1Name = builder.create(string: "Sword")
|
||||
let weapon2Name = builder.create(string: "Axe")
|
||||
|
||||
// start creating the weapon by calling startWeapon
|
||||
let weapon1Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon1Name, &builder)
|
||||
Weapon.add(damage: 3, &builder)
|
||||
// end the object by passing the start point for the weapon 1
|
||||
let sword = Weapon.endWeapon(&builder, start: weapon1Start)
|
||||
|
||||
let weapon2Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon2Name, &builder)
|
||||
Weapon.add(damage: 5, &builder)
|
||||
let axe = Weapon.endWeapon(&builder, start: weapon2Start)
|
||||
|
||||
// Create a FlatBuffer `vector` that contains offsets to the sword and axe
|
||||
// we created above.
|
||||
let weaponsOffset = builder.createVector(ofOffsets: [sword, axe])
|
||||
|
||||
// Name of the Monster.
|
||||
let name = builder.create(string: "Orc")
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a `FlatBufferBuilder`, which will be used to serialize objects
|
||||
let builder = FlatBufferBuilder(initialSize: 1024)
|
||||
|
||||
let weapon1Name = builder.create(string: "Sword")
|
||||
let weapon2Name = builder.create(string: "Axe")
|
||||
|
||||
// start creating the weapon by calling startWeapon
|
||||
let weapon1Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon1Name, &builder)
|
||||
Weapon.add(damage: 3, &builder)
|
||||
// end the object by passing the start point for the weapon 1
|
||||
let sword = Weapon.endWeapon(&builder, start: weapon1Start)
|
||||
|
||||
let weapon2Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon2Name, &builder)
|
||||
Weapon.add(damage: 5, &builder)
|
||||
let axe = Weapon.endWeapon(&builder, start: weapon2Start)
|
||||
|
||||
// Create a FlatBuffer `vector` that contains offsets to the sword and axe
|
||||
// we created above.
|
||||
let weaponsOffset = builder.createVector(ofOffsets: [sword, axe])
|
||||
|
||||
// Name of the Monster.
|
||||
let name = builder.create(string: "Orc")
|
||||
|
||||
let pathOffset = fbb.createVector(ofStructs: [
|
||||
Vec3(x: 0, y: 0),
|
||||
Vec3(x: 5, y: 5),
|
||||
])
|
||||
|
||||
// startVector(len, elementSize: MemoryLayout<Offset>.size)
|
||||
// for o in offsets.reversed() {
|
||||
// push(element: o)
|
||||
// }
|
||||
// endVector(len: len)
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
import FlatBuffers
|
||||
import Foundation
|
||||
|
||||
func run() {
|
||||
// create a `FlatBufferBuilder`, which will be used to serialize objects
|
||||
let builder = FlatBufferBuilder(initialSize: 1024)
|
||||
|
||||
let weapon1Name = builder.create(string: "Sword")
|
||||
let weapon2Name = builder.create(string: "Axe")
|
||||
|
||||
// start creating the weapon by calling startWeapon
|
||||
let weapon1Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon1Name, &builder)
|
||||
Weapon.add(damage: 3, &builder)
|
||||
// end the object by passing the start point for the weapon 1
|
||||
let sword = Weapon.endWeapon(&builder, start: weapon1Start)
|
||||
|
||||
let weapon2Start = Weapon.startWeapon(&builder)
|
||||
Weapon.add(name: weapon2Name, &builder)
|
||||
Weapon.add(damage: 5, &builder)
|
||||
let axe = Weapon.endWeapon(&builder, start: weapon2Start)
|
||||
|
||||
// Create a FlatBuffer `vector` that contains offsets to the sword and axe
|
||||
// we created above.
|
||||
let weaponsOffset = builder.createVector(ofOffsets: [sword, axe])
|
||||
|
||||
// Name of the Monster.
|
||||
let name = builder.create(string: "Orc")
|
||||
|
||||
let pathOffset = fbb.createVector(ofStructs: [
|
||||
Vec3(x: 0, y: 0),
|
||||
Vec3(x: 5, y: 5),
|
||||
])
|
||||
|
||||
// startVector(len, elementSize: MemoryLayout<Offset>.size)
|
||||
// for o in offsets.reversed() {
|
||||
// push(element: o)
|
||||
// }
|
||||
// endVector(len: len)
|
||||
|
||||
let orc = Monster.createMonster(
|
||||
&builder,
|
||||
pos: Vec3(x: 1, y: 2),
|
||||
hp: 300,
|
||||
nameOffset: name,
|
||||
color: .red,
|
||||
weaponsVectorOffset: weaponsOffset,
|
||||
equippedType: .weapon,
|
||||
equippedOffset: axe,
|
||||
pathOffset: pathOffset)
|
||||
|
||||
// let start = Monster.startMonster(&builder)
|
||||
// Monster.add(pos: Vec3(x: 1, y: 2), &builder)
|
||||
// Monster.add(hp: 300, &builder)
|
||||
// Monster.add(name: name, &builder)
|
||||
// Monster.add(color: .red, &builder)
|
||||
// Monster.addVectorOf(weapons: weaponsOffset, &builder)
|
||||
// Monster.add(equippedType: .weapon, &builder)
|
||||
// Monster.addVectorOf(paths: weaponsOffset, &builder)
|
||||
// Monster.add(equipped: axe, &builder)
|
||||
// var orc = Monster.endMonster(&builder, start: start)
|
||||
}
|
||||
Reference in New Issue
Block a user