Module ule

Source
Expand description

Traits over unaligned little-endian data (ULE, pronounced “yule”).

The main traits for this module are ULE, AsULE and, VarULE.

See the design doc for details on how these traits works under the hood.

Modules§

custom
Documentation on implementing custom VarULE types.
tuple
ULE impls for tuples.
tuplevar
VarULE impls for tuples.
vartuple
Types to help compose fixed-size ULE and variable-size VarULE primitives.

Structs§

CharULE
A u8 array of little-endian data corresponding to a Unicode scalar value.
MultiFieldsULE
This type is used by the custom derive to represent multiple VarULE fields packed into a single end-of-struct field. It is not recommended to use this type directly, use Tuple2VarULE etc instead.
NichedOption
Optional type which uses NichedOptionULE<U,N> as ULE type.
OptionULE
This type is the ULE type for Option<U> where U is a ULE type
OptionVarULE
A type allowing one to represent Option<U> for VarULE U types.
RawBytesULE
A u8 array of little-endian data with infallible conversions to and from &u8.

Enums§

UleError
An error type to be used for decoding slices of ULE types

Traits§

AsULE
A trait for any type that has a 1:1 mapping with an unaligned little-endian (ULE) type.
EncodeAsVarULE
Allows types to be encoded as VarULEs. This is highly useful for implementing VarULE on custom DSTs where the type cannot be obtained as a reference to some other type.
EqULE
A type whose byte sequence equals the byte sequence of its ULE type on little-endian platforms.
NicheBytes
The ULE types implementing this trait guarantee that NicheBytes::NICHE_BIT_PATTERN can never occur as a valid byte representation of the type.
SliceAsULE
A trait for a type where aligned slices can be cast to unaligned slices.
ULE
Fixed-width, byte-aligned data that can be cast to and from a little-endian byte slice.
VarULE
Variable-width, byte-aligned data that can be cast to and from a little-endian byte slice.

Functions§

encode_varule_to_box
Given an EncodeAsVarULE type S, encode it into a Box<T>

Unions§

NichedOptionULE
ULE type for NichedOption<U,N> where U implements NicheBytes. The invalid bit pattern is used as the niche.

Derive Macros§

ULE
Custom derive for ULE.
VarULE
Custom derive for VarULE