Skip to main content

MaybeHasNiche

Trait MaybeHasNiche 

Source
pub trait MaybeHasNiche {
    type MnArray;
}
Expand description

This might contain a valid Niche.

If Self: Size, a niche must have the same size.

A niche must satisfy these requirements if it doesn’t need a tag:

  • No valid values are a prefix of it, if Self is inline. Otherwise we might misinterpret a concatenation.
  • It’s not a prefix of any values. Otherwise we wouldn’t be able to parse some valid values.

Required Associated Types§

Source

type MnArray

Should implement [MnArray]. Not constraint explicitly, because that breaks things.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl MaybeHasNiche for ()

Source§

impl MaybeHasNiche for Bytes

Available on crate feature bytes only.
Source§

impl MaybeHasNiche for BytesMut

Available on crate feature bytes only.
Source§

impl MaybeHasNiche for CString

Source§

impl MaybeHasNiche for Infallible

Source§

impl MaybeHasNiche for NonZero<u8>

Source§

impl MaybeHasNiche for NonZero<u16>

Source§

impl MaybeHasNiche for NonZero<u32>

Source§

impl MaybeHasNiche for NonZero<u64>

Source§

impl MaybeHasNiche for NonZero<u128>

Source§

impl MaybeHasNiche for String

Source§

impl MaybeHasNiche for Ulid

Available on crate feature ulid only.
Source§

impl MaybeHasNiche for bool

Source§

impl MaybeHasNiche for char

Source§

type MnArray = SomeNiche<CharNiche>

Source§

impl MaybeHasNiche for f32

Source§

impl MaybeHasNiche for f64

Source§

impl MaybeHasNiche for i8

Source§

impl MaybeHasNiche for i16

Source§

impl MaybeHasNiche for i32

Source§

impl MaybeHasNiche for i64

Source§

impl MaybeHasNiche for i128

Source§

impl MaybeHasNiche for str

Source§

impl MaybeHasNiche for u8

Source§

impl MaybeHasNiche for u16

Source§

impl MaybeHasNiche for u32

Source§

impl MaybeHasNiche for u64

Source§

impl MaybeHasNiche for u128

Source§

impl<'a, B: 'a + ToOwned + MaybeHasNiche + ?Sized> MaybeHasNiche for Cow<'a, B>

Source§

impl<A, O: BitOrder> MaybeHasNiche for BitArray<A, O>
where PhantomData<O>: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>, A: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>> + BitViewSized,

Available on crate feature bitvec only.
Source§

type MnArray = TArr<<<PhantomData<O> as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, TArr<<<A as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, ATerm>>

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche, G: MaybeHasNiche, H: MaybeHasNiche, I: MaybeHasNiche, J: MaybeHasNiche, K: MaybeHasNiche, L: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche, G: MaybeHasNiche, H: MaybeHasNiche, I: MaybeHasNiche, J: MaybeHasNiche, K: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F, G, H, I, J, K)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche, G: MaybeHasNiche, H: MaybeHasNiche, I: MaybeHasNiche, J: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F, G, H, I, J)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche, G: MaybeHasNiche, H: MaybeHasNiche, I: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F, G, H, I)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche, G: MaybeHasNiche, H: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F, G, H)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche, G: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F, G)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche> MaybeHasNiche for (A, B, C, D)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche> MaybeHasNiche for (A, B, C)

Source§

impl<A: MaybeHasNiche, B: MaybeHasNiche> MaybeHasNiche for (A, B)

Source§

impl<T, N: ArrayLength + IsGreater<U0, Output = B>, B: MoreThan0<T, N>> MaybeHasNiche for GenericArray<T, N>

Source§

type MnArray = <B as MoreThan0<T, N>>::MnArray

Source§

impl<T, const N: usize> MaybeHasNiche for [T; N]

Source§

impl<T: ?Sized + MaybeHasNiche> MaybeHasNiche for &T

Source§

impl<T: ?Sized + MaybeHasNiche> MaybeHasNiche for Arc<T>

Source§

impl<T: ?Sized + MaybeHasNiche> MaybeHasNiche for Box<T>

Source§

impl<T: ?Sized> MaybeHasNiche for PhantomData<T>

Source§

impl<T: MaybeHasNiche<MnArray: MnArray<MaybeNiche = Mn>>, Mn: Niche<NeedsTag = B, N: Add<B, Output: ArrayLength>>, B: OptionNicheWrapper> MaybeHasNiche for Option<T>

Source§

type MnArray = <B as OptionNicheWrapper>::Wrap<Mn>

Source§

impl<T: MaybeHasNiche> MaybeHasNiche for (T,)

Source§

impl<T> MaybeHasNiche for Vec<T>

Source§

impl<T> MaybeHasNiche for VecDeque<T>

Source§

impl<T> MaybeHasNiche for dyn Send + Sync + ExtraFor<T>

Source§

impl<const S: usize> MaybeHasNiche for CidGeneric<S>

Available on crate feature cid only.

varint inside.

Implementors§

Source§

impl MaybeHasNiche for Address

Source§

impl MaybeHasNiche for AddressedBytes
where Address: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>, Arc<dyn Resolve>: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>,

Source§

type MnArray = TArr<<<Address as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, TArr<<<Arc<dyn Resolve> as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, ATerm>>

Source§

impl MaybeHasNiche for Be<NonZero<i8>>

Source§

impl MaybeHasNiche for Be<NonZero<i16>>

Source§

impl MaybeHasNiche for Be<NonZero<i32>>

Source§

impl MaybeHasNiche for Be<NonZero<i64>>

Source§

impl MaybeHasNiche for Be<NonZero<i128>>

Source§

impl MaybeHasNiche for Be<NonZero<u8>>

Source§

impl MaybeHasNiche for Be<NonZero<u16>>

Source§

impl MaybeHasNiche for Be<NonZero<u32>>

Source§

impl MaybeHasNiche for Be<NonZero<u64>>

Source§

impl MaybeHasNiche for Be<NonZero<u128>>

Source§

impl MaybeHasNiche for Be<f32>

Source§

impl MaybeHasNiche for Be<f64>

Source§

impl MaybeHasNiche for Be<i8>

Source§

impl MaybeHasNiche for Be<i16>

Source§

impl MaybeHasNiche for Be<i32>

Source§

impl MaybeHasNiche for Be<i64>

Source§

impl MaybeHasNiche for Be<i128>

Source§

impl MaybeHasNiche for Be<u8>

Source§

impl MaybeHasNiche for Be<u16>

Source§

impl MaybeHasNiche for Be<u32>

Source§

impl MaybeHasNiche for Be<u64>

Source§

impl MaybeHasNiche for Be<u128>

Source§

impl MaybeHasNiche for Ff

Source§

impl MaybeHasNiche for Hash

Source§

impl MaybeHasNiche for Le<NonZero<i8>>

Source§

impl MaybeHasNiche for Le<NonZero<i16>>

Source§

impl MaybeHasNiche for Le<NonZero<i32>>

Source§

impl MaybeHasNiche for Le<NonZero<i64>>

Source§

impl MaybeHasNiche for Le<NonZero<i128>>

Source§

impl MaybeHasNiche for Le<NonZero<u8>>

Source§

impl MaybeHasNiche for Le<NonZero<u16>>

Source§

impl MaybeHasNiche for Le<NonZero<u32>>

Source§

impl MaybeHasNiche for Le<NonZero<u64>>

Source§

impl MaybeHasNiche for Le<NonZero<u128>>

Source§

impl MaybeHasNiche for Le<f32>

Source§

impl MaybeHasNiche for Le<f64>

Source§

impl MaybeHasNiche for Le<i8>

Source§

impl MaybeHasNiche for Le<i16>

Source§

impl MaybeHasNiche for Le<i32>

Source§

impl MaybeHasNiche for Le<i64>

Source§

impl MaybeHasNiche for Le<i128>

Source§

impl MaybeHasNiche for Le<u8>

Source§

impl MaybeHasNiche for Le<u16>

Source§

impl MaybeHasNiche for Le<u32>

Source§

impl MaybeHasNiche for Le<u64>

Source§

impl MaybeHasNiche for Le<u128>

Source§

impl MaybeHasNiche for NicheCut

Source§

impl MaybeHasNiche for OptionalHash

Source§

impl MaybeHasNiche for dyn Resolve + '_

Source§

impl<Extra> MaybeHasNiche for Extras<Extra>

Source§

impl<Extra> MaybeHasNiche for InlineExtra<Extra>
where Extra: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>,

Source§

type MnArray = TArr<<<Extra as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, ATerm>

Source§

impl<K> MaybeHasNiche for PartialByteTag<K>

Source§

impl<M> MaybeHasNiche for SmExtra<M>

Source§

type MnArray = NoNiche<ZeroNoNiche<<SmExtra<M> as Size>::Size>>

Source§

impl<T, Extra> MaybeHasNiche for Addressed<T, Extra>
where Extras<Extra>: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>, AddressedBytes: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>, ObjectMarker<T>: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>,

Source§

type MnArray = TArr<<<Extras<Extra> as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, TArr<<<AddressedBytes as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, TArr<<<ObjectMarker<T> as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, ATerm>>>

Source§

impl<T, M> MaybeHasNiche for MappedExtra<T, M>
where M: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>, T: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>,

Source§

type MnArray = TArr<<<M as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, TArr<<<T as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, ATerm>>

Source§

impl<T, const MAX: usize> MaybeHasNiche for EnumTag<T, MAX>
where T: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>,

Source§

type MnArray = TArr<<<T as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, ATerm>

Source§

impl<T: ?Sized> MaybeHasNiche for ObjectMarker<T>

Source§

impl<T: MaybeHasNiche<MnArray = NoNiche<NicheForUnsized>>> MaybeHasNiche for Zt<T>

Source§

impl<T: MaybeHasNiche> MaybeHasNiche for WithRepr<T>

Source§

impl<T> MaybeHasNiche for Local<T>
where T: MaybeHasNiche<MnArray: MnArray<MaybeNiche: MaybeNiche>>,

Source§

type MnArray = TArr<<<T as MaybeHasNiche>::MnArray as MnArray>::MaybeNiche, ATerm>