Serialization library for Linden Lab Serial Data format. Rust/Serde version.
Linden Lab Structured Data (LLSD) serialization
This is a serialization system used by Second Life and Open Simulator. It is documented here: http://wiki.secondlife.com/wiki/LLSD
There are three formats - XML, binary, and "Notation". All store the same data, which is roughly what JSON can represent. Parsing and output functions are provided.
Preliminary, but appears to work.
XML and binary versions are implemented. "Notation" will not be implemented at this time.
Unit tests pass. Non-Serde version tested against Second Life asset servers.
Binary - Vec
A map is a HashMap mapping String keys to LLSD values.
An array is a Rust Vec of LLSD values.
The enumasinner crate is used to derive access functions for each field type. So, given an LLSDValue llsdval which is expected to be an Integer,
let n = *llsdval.as_integer().unwrap();
will yield the integer value.
These generally follow the conventions of the Rust crate "json". An LLSD value is a tree.