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-sizeVarULE
primitives.
Structs§
- CharULE
- A u8 array of little-endian data corresponding to a Unicode scalar value.
- Multi
FieldsULE - 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, useTuple2VarULE
etc instead. - Niched
Option - Optional type which uses
NichedOptionULE<U,N>
as ULE type. - OptionULE
- This type is the
ULE
type forOption<U>
whereU
is aULE
type - Option
VarULE - A type allowing one to represent
Option<U>
forVarULE
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.
- Encode
AsVarULE - 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.
- Niche
Bytes - The
ULE
types implementing this trait guarantee thatNicheBytes::NICHE_BIT_PATTERN
can never occur as a valid byte representation of the type. - Slice
AsULE - 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
typeS
, encode it into aBox<T>
Unions§
- Niched
OptionULE ULE
type forNichedOption<U,N>
where U implementsNicheBytes
. The invalid bit pattern is used as the niche.