[−][src]Module grin_core::ser
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
BinReader | Utility to read from a binary source |
BinWriter | Utility wrapper for an underlying byte Writer. Defines higher level methods to write numbers, byte vectors, hashes, etc. |
IteratingReader | Reader that exposes an Iterator interface. |
ProtocolVersion | 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. |
StreamingReader | A reader that reads straight off a stream. Tracks total bytes read so we can verify we read the right number afterwards. |
Enums
Error | Possible errors deriving from serializing or deserializing. |
SerializationMode | Signal to a serializable object how much of its data should be serialized |
Traits
PMMRIndexHashable | Generic trait to ensure PMMR elements can be hashed with an index |
PMMRable | Trait for types that can be added to a PMMR. |
Readable | 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. |
Reader | Implementations defined how different numbers and binary structures are read from an underlying stream or container (depending on implementation). |
VerifySortedAndUnique | Collections of items must be sorted lexicographically and all unique. |
Writeable | 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. |
Writer | Implementations defined how different numbers and binary structures are written to an underlying stream or container (depending on implementation). |
Functions
deserialize | Deserializes a Readable from any std::io::Read implementation. |
deserialize_default | Deserialize a Readable based on our default "local" protocol version. |
read_multi | Reads multiple serialized items into a Vec. |
ser_vec | Utility function to serialize a writeable directly in memory using a
Vec |
serialize | Serializes a Writeable into any std::io::Write implementation. |
serialize_default | Serialize a Writeable according to our default "local" protocol version. |