Trait LmdbRawIfUnaligned

Source
pub unsafe trait LmdbRawIfUnaligned: Copy + Sized {
    // Provided method
    fn reported_type() -> String { ... }
}
Expand description

Marker trait for types where Unaligned<T> is LmdbRaw.

This has all the implications as LmdbRaw, except that blanket implementations around the bare type are not available. This forces the client code to wrap the type in Unaligned to explicitly handle possible misalignment.

All integer and floating-point types have this trait.

Note that LmdbRawIfUnaligned is not blanket-implemented for fixed-size arrays, because currently doing so would preclude a blanket implementation of LmdbRaw for fixed-size arrays. Since the latter is generally more useful and is more consistent since variable-length slices can only usefully interact with LmdbRaw, that approach was chosen.

All LmdbRaw types are LmdbRawIfUnaligned.

Provided Methods§

Source

fn reported_type() -> String

Returns the name of this type to report in error messages.

If not implemented, defaults to "?".

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl LmdbRawIfUnaligned for f32

Source§

impl LmdbRawIfUnaligned for f64

Source§

impl LmdbRawIfUnaligned for i16

Source§

impl LmdbRawIfUnaligned for i32

Source§

impl LmdbRawIfUnaligned for i64

Source§

impl LmdbRawIfUnaligned for u16

Source§

impl LmdbRawIfUnaligned for u32

Source§

impl LmdbRawIfUnaligned for u64

Source§

impl<V: LmdbRawIfUnaligned> LmdbRawIfUnaligned for Wrapping<V>

Implementors§