zerovec::maps

Trait ZeroMapKV

Source
pub trait ZeroMapKV<'a> {
    type Container: MutableZeroVecLike<'a, Self, SliceVariant = Self::Slice, GetType = Self::GetType, OwnedType = Self::OwnedType> + Sized;
    type Slice: ZeroVecLike<Self, GetType = Self::GetType> + ?Sized;
    type GetType: ?Sized + 'static;
    type OwnedType: 'static;
}
Expand description

Trait marking types which are allowed to be keys or values in ZeroMap.

Users should not be calling methods of this trait directly, however if you are implementing your own AsULE or VarULE type you may wish to implement this trait.

Required Associated Types§

Source

type Container: MutableZeroVecLike<'a, Self, SliceVariant = Self::Slice, GetType = Self::GetType, OwnedType = Self::OwnedType> + Sized

The container that can be used with this type: ZeroVec or VarZeroVec.

Source

type Slice: ZeroVecLike<Self, GetType = Self::GetType> + ?Sized

Source

type GetType: ?Sized + 'static

The type produced by Container::get()

This type will be predetermined by the choice of Self::Container: For sized types this must be T::ULE, and for unsized types this must be T

Source

type OwnedType: 'static

The type produced by Container::replace() and Container::remove(), also used during deserialization. If Self is human readable serialized, deserializing to Self::OwnedType should produce the same value once passed through Self::owned_as_self()

This type will be predetermined by the choice of Self::Container: For sized types this must be T and for unsized types this must be Box<T>

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<'a> ZeroMapKV<'a> for char

Source§

impl<'a> ZeroMapKV<'a> for f32

Source§

impl<'a> ZeroMapKV<'a> for f64

Source§

impl<'a> ZeroMapKV<'a> for i8

Source§

impl<'a> ZeroMapKV<'a> for i16

Source§

impl<'a> ZeroMapKV<'a> for i32

Source§

impl<'a> ZeroMapKV<'a> for i64

Source§

impl<'a> ZeroMapKV<'a> for i128

Source§

impl<'a> ZeroMapKV<'a> for str

Source§

impl<'a> ZeroMapKV<'a> for u8

Source§

impl<'a> ZeroMapKV<'a> for u16

Source§

impl<'a> ZeroMapKV<'a> for u32

Source§

impl<'a> ZeroMapKV<'a> for u64

Source§

impl<'a> ZeroMapKV<'a> for u128

Source§

impl<'a> ZeroMapKV<'a> for usize

Source§

impl<'a, A: Ord + AsULE + 'static, B: Ord + AsULE + 'static> ZeroMapKV<'a> for (A, B)

Source§

impl<'a, A: Ord + AsULE + 'static, B: Ord + AsULE + 'static, C: Ord + AsULE + 'static> ZeroMapKV<'a> for (A, B, C)

Source§

impl<'a, A: Ord + AsULE + 'static, B: Ord + AsULE + 'static, C: Ord + AsULE + 'static, D: Ord + AsULE + 'static> ZeroMapKV<'a> for (A, B, C, D)

Source§

impl<'a, A: Ord + AsULE + 'static, B: Ord + AsULE + 'static, C: Ord + AsULE + 'static, D: Ord + AsULE + 'static, E: Ord + AsULE + 'static> ZeroMapKV<'a> for (A, B, C, D, E)

Source§

impl<'a, A: Ord + AsULE + 'static, B: Ord + AsULE + 'static, C: Ord + AsULE + 'static, D: Ord + AsULE + 'static, E: Ord + AsULE + 'static, F: Ord + AsULE + 'static> ZeroMapKV<'a> for (A, B, C, D, E, F)

Source§

impl<'a, T> ZeroMapKV<'a> for Option<T>
where Option<T>: AsULE + 'static,

Source§

impl<'a, T> ZeroMapKV<'a> for [T]
where T: ULE + AsULE<ULE = T>,

Source§

impl<'a, T, const N: usize> ZeroMapKV<'a> for [T; N]
where T: AsULE + 'static,

Implementors§