add flatbuffers

This commit is contained in:
2020-06-25 23:22:18 +08:00
parent b8c99ede5b
commit fa722f19cf
6 changed files with 662 additions and 0 deletions

30
flatbuffers/src/main.rs Normal file
View File

@@ -0,0 +1,30 @@
#[allow(dead_code, unused_imports)]
mod monster_generated;
use flatbuffers::FlatBufferBuilder;
use monster_generated::my_game::sample::Monster;
use monster_generated::my_game::sample::MonsterArgs;
// https://github.com/frol/flatc-rust/blob/master/examples/tutorial/src/main.rs
fn main() {
let mut fbb = FlatBufferBuilder::new();
let name = fbb.create_string("Sample Name!");
let monster = Monster::create(&mut fbb, &MonsterArgs {
mana: 150,
hp: 80,
name: Some(name),
..Default::default()
});
fbb.finish(monster, None);
let buff = fbb.finished_data();
println!("FlatBuffers: {}", hex::encode(&buff));
let monster_2 = flatbuffers::get_root::<Monster>(&buff);
println!("Monster hp: {}", monster_2.hp());
println!("Monster name: {:?}", monster_2.name());
}