facet-value
facet-value
A memory-efficient dynamic value type for representing structured data, with support for bytes.
Features
- Pointer-sized:
Valueis exactly one pointer in size using tagged pointers - Rich type support: Null, Bool, Number, String, Bytes, Array, Object, DateTime
- Bidirectional conversion: Convert between
Valueand any type implementingFacet
Example
use Facet;
use ;
// Convert a typed value to a dynamic Value
let person = Person ;
let value: Value = to_value.unwrap;
// Inspect the value dynamically
let obj = value.as_object.unwrap;
assert_eq!;
// Convert back to a typed value
let person2: Person = from_value.unwrap;
assert_eq!;
Sponsors
Thanks to all individual sponsors:
...along with corporate sponsors:
...without whom this work could not exist.
Special thanks
The facet logo was drawn by Misiasart.
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.