[][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.