mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-21 12:25:45 +00:00
Rust Flexbuffers Documentation update (#5979)
* Update samples and docs * Fixed a line of documentation Co-authored-by: Casper Neo <cneo@google.com>
This commit is contained in:
@@ -10,5 +10,13 @@ FlexBuffers' design and implementation allows for a very compact encoding,
|
|||||||
with automatic sizing of containers to their smallest possible representation
|
with automatic sizing of containers to their smallest possible representation
|
||||||
(8/16/32/64 bits). Many values and offsets can be encoded in just 8 bits.
|
(8/16/32/64 bits). Many values and offsets can be encoded in just 8 bits.
|
||||||
|
|
||||||
|
FlexBuffers supports [Serde](https://serde.rs/) for automatically serializing
|
||||||
|
Rust data structures into its binary format.
|
||||||
|
|
||||||
|
## See Examples for Usage:
|
||||||
|
* [Example](https://github.com/google/flatbuffers/blob/master/samples/sample_flexbuffers.rs)
|
||||||
|
* [Serde Example](https://github.com/google/flatbuffers/blob/master/samples/sample_flexbuffers_serde.rs)
|
||||||
|
* [Documentation](https://docs.rs/flexbuffers)
|
||||||
|
|
||||||
Flexbuffers is the schema-less cousin of
|
Flexbuffers is the schema-less cousin of
|
||||||
[Flatbuffers](https://google.github.io/flatbuffers/).
|
[Flatbuffers](https://google.github.io/flatbuffers/).
|
||||||
|
|||||||
@@ -18,10 +18,12 @@
|
|||||||
//! See [Flexbuffer Internals](https://google.github.io/flatbuffers/flatbuffers_internals.html)
|
//! See [Flexbuffer Internals](https://google.github.io/flatbuffers/flatbuffers_internals.html)
|
||||||
//! for details on the binary format.
|
//! for details on the binary format.
|
||||||
//!
|
//!
|
||||||
//! * [See the examples for usage.](https://github.com/CasperN/flexbuffers/tree/master/examples)
|
//! See the examples for usage:
|
||||||
|
//! * [Example](https://github.com/google/flatbuffers/blob/master/samples/sample_flexbuffers.rs)
|
||||||
|
//! * [Serde Example](https://github.com/google/flatbuffers/blob/master/samples/sample_flexbuffers_serde.rs)
|
||||||
//!
|
//!
|
||||||
//! This rust implementation is in progress and, until the 1.0 release, breaking API changes may
|
//! This rust implementation is in progress and, until the 1.0 release, breaking API changes may
|
||||||
/// happen between minor versions.
|
//! happen between minor versions.
|
||||||
// TODO(cneo): serde stuff are behind a default-on feature flag
|
// TODO(cneo): serde stuff are behind a default-on feature flag
|
||||||
// Reader to Json is behind a default-off feature flag
|
// Reader to Json is behind a default-off feature flag
|
||||||
// Serializable structs are Pushable
|
// Serializable structs are Pushable
|
||||||
|
|||||||
@@ -16,6 +16,21 @@ extern crate flexbuffers;
|
|||||||
|
|
||||||
use flexbuffers::{BitWidth, Builder, Reader, ReaderError};
|
use flexbuffers::{BitWidth, Builder, Reader, ReaderError};
|
||||||
|
|
||||||
|
|
||||||
|
// In this Example we're creating a monster that corresponds to the following JSON:
|
||||||
|
// {
|
||||||
|
// "coins": [5, 10, 25, 25, 25, 100],
|
||||||
|
// "color": [255, 0, 0, 255],
|
||||||
|
// "enraged": true,
|
||||||
|
// "hp": 80,
|
||||||
|
// "mana": 200,
|
||||||
|
// "position": [0, 0, 0],
|
||||||
|
// "velocity": [1, 0, 0],
|
||||||
|
// "weapons": [
|
||||||
|
// "fist",
|
||||||
|
// {"damage": 15, "name": "great axe"},
|
||||||
|
// {"damage": 5, "name": "hammer"}]
|
||||||
|
// }
|
||||||
fn main() {
|
fn main() {
|
||||||
// Create a new Flexbuffer builder.
|
// Create a new Flexbuffer builder.
|
||||||
let mut builder = Builder::default();
|
let mut builder = Builder::default();
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ authors = ["Robert Winslow <hello@rwinslow.com>", "FlatBuffers Maintainers"]
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
flatbuffers = { path = "../../rust/flatbuffers" }
|
flatbuffers = { path = "../../rust/flatbuffers" }
|
||||||
flexbuffers = { path = "../../rust/flexbuffers" }
|
flexbuffers = { path = "../../rust/flexbuffers" }
|
||||||
|
serde_derive = "1.0"
|
||||||
|
serde = "1.0"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "monster_example"
|
name = "monster_example"
|
||||||
@@ -19,13 +21,19 @@ path = "bin/flatbuffers_alloc_check.rs"
|
|||||||
name = "flexbuffers_alloc_check"
|
name = "flexbuffers_alloc_check"
|
||||||
path = "bin/flexbuffers_alloc_check.rs"
|
path = "bin/flexbuffers_alloc_check.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "sample_flexbuffers"
|
||||||
|
path = "../../samples/sample_flexbuffers.rs"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "sample_flexbuffers_serde"
|
||||||
|
path = "../../samples/sample_flexbuffers_serde.rs"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
quickcheck = "0.6"
|
quickcheck = "0.6"
|
||||||
# TODO(rw): look into moving to criterion.rs
|
# TODO(rw): look into moving to criterion.rs
|
||||||
bencher = "0.1.5"
|
bencher = "0.1.5"
|
||||||
static_assertions = "1.0.0"
|
static_assertions = "1.0.0"
|
||||||
serde_derive = "*"
|
|
||||||
serde = "*"
|
|
||||||
rand = "*"
|
rand = "*"
|
||||||
quickcheck_derive = "*"
|
quickcheck_derive = "*"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user