Utilities for safe zero-copy parsing and serialization.
This crate provides utilities which make it easy to perform zero-copy parsing and serialization by allowing zero-copy conversion to/from byte slices.
This is enabled by three core marker traits, each of which can be derived
FromBytesindicates that a type may safely be converted from an arbitrary byte sequence
AsBytesindicates that a type may safely be converted to a byte sequence
Unalignedindicates that a type's alignment requirement is 1
Types which implement a subset of these traits can then be converted to/from byte sequences with little to no runtime overhead.
Note that these traits are ignorant of byte order. For byte order-aware
types, see the
Byte order-aware numeric primitives.
A length- and alignment-checked reference to a byte slice which can safely be reinterpreted as another type.
Types which are safe to treat as an immutable byte slice.
A mutable or immutable reference to a byte slice.
A mutable reference to a byte slice.
Types for which any byte pattern is valid.
Types with no alignment requirement.