Expand description
Serialization and deserialization layer specialized for binary encoding. Ensures consistency and safety. Basically a minimal subset or rustc_serialize customized for our need.
To use it simply implement Writeable
or Readable
and then use the
serialize
or deserialize
functions on them as appropriate.
Structs§
- Utility to read from a binary source
- Utility wrapper for an underlying byte Writer. Defines higher level methods to write numbers, byte vectors, hashes, etc.
- Protocol version-aware wrapper around a
Buf
impl - Reader that exposes an Iterator interface.
- Protocol version for serialization/deserialization. Note: This is used in various places including but limited to the p2p layer and our local db storage layer. We may speak multiple versions to various peers and a potentially different version for our local db.
- A reader that reads straight off a stream. Tracks total bytes read so we can verify we read the right number afterwards.
Enums§
- Signal to a deserializable object how much of its data should be deserialized
- Possible errors deriving from serializing or deserializing.
- Signal to a serializable object how much of its data should be serialized
Traits§
- Generic trait to ensure PMMR elements can be hashed with an index
- Trait for types that can be added to a PMMR.
- Trait that every type that can be deserialized from binary must implement. Reads directly to a Reader, a utility type thinly wrapping an underlying Read implementation.
- Implementations defined how different numbers and binary structures are read from an underlying stream or container (depending on implementation).
- Collections of items must be sorted lexicographically and all unique.
- Trait that every type that can be serialized as binary must implement. Writes directly to a Writer, a utility type thinly wrapping an underlying Write implementation.
- Implementations defined how different numbers and binary structures are written to an underlying stream or container (depending on implementation).
Functions§
- Deserializes a Readable from any std::io::Read implementation.
- Deserialize a Readable based on our default “local” protocol version.
- Reads multiple serialized items into a Vec.
- Utility function to serialize a writeable directly in memory using a Vec
. - Serializes a Writeable into any std::io::Write implementation.
- Serialize a Writeable according to our default “local” protocol version.