Module serialize

Source
Expand description

Support code for encoding and decoding types.

MacrosΒ§

direct_serialize_impls πŸ”’
peel πŸ”’
tuple πŸ”’

ConstantsΒ§

BYTE_STR_SENTINEL πŸ”’
For byte strings there are no bytes that cannot occur. Just use this value as a best-effort sentinel. There is no validation skipped so the potential for badness is lower than in the STR_SENTINEL case.
STR_SENTINEL πŸ”’
A byte that cannot occur in UTF8 sequences. Used to mark the end of a string. This way we can skip validation and still be relatively sure that deserialization did not desynchronize.

TraitsΒ§

Decodable
Trait for types that can be deserialized
Decoder
This current does not support f32 nor f64, as they’re not needed in any serialized data structures. That could be changed, but consider whether it really makes sense to store floating-point values at all. (If you need it, revert https://github.com/rust-lang/rust/pull/109984.)
Encodable
Trait for types that can be serialized
Encoder
A note about error handling.