[][src]Crate zerocopy

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 (e.g., #[derive(FromBytes)]):

  • FromBytes indicates that a type may safely be converted from an arbitrary byte sequence
  • AsBytes indicates that a type may safely be converted to a byte sequence
  • Unaligned indicates 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 byteorder module.

Re-exports

pub use crate::byteorder::*;

Modules

byteorder

Byte order-aware numeric primitives.

Structs

LayoutVerified

A length- and alignment-checked reference to a byte slice which can safely be reinterpreted as another type.

Traits

AsBytes

Types which are safe to treat as an immutable byte slice.

ByteSlice

A mutable or immutable reference to a byte slice.

ByteSliceMut

A mutable reference to a byte slice.

FromBytes

Types for which any byte pattern is valid.

Unaligned

Types with no alignment requirement.