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
Selfis 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§
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 Bytes
Available on crate feature bytes only.
impl MaybeHasNiche for Bytes
Available on crate feature
bytes only.type MnArray = NoNiche<NicheForUnsized>
Source§impl MaybeHasNiche for BytesMut
Available on crate feature bytes only.
impl MaybeHasNiche for BytesMut
Available on crate feature
bytes only.type MnArray = NoNiche<NicheForUnsized>
Source§impl MaybeHasNiche for CString
impl MaybeHasNiche for CString
type MnArray = NoNiche<NicheForUnsized>
Source§impl MaybeHasNiche for Infallible
impl MaybeHasNiche for Infallible
Source§impl MaybeHasNiche for NonZero<u8>
impl MaybeHasNiche for NonZero<u8>
Source§impl MaybeHasNiche for NonZero<u16>
impl MaybeHasNiche for NonZero<u16>
Source§impl MaybeHasNiche for NonZero<u32>
impl MaybeHasNiche for NonZero<u32>
Source§impl MaybeHasNiche for NonZero<u64>
impl MaybeHasNiche for NonZero<u64>
Source§impl MaybeHasNiche for NonZero<u128>
impl MaybeHasNiche for NonZero<u128>
Source§impl MaybeHasNiche for String
impl MaybeHasNiche for String
type MnArray = NoNiche<NicheForUnsized>
Source§impl MaybeHasNiche for Ulid
Available on crate feature ulid only.
impl MaybeHasNiche for Ulid
Available on crate feature
ulid only.Source§impl MaybeHasNiche for bool
impl MaybeHasNiche for bool
Source§impl MaybeHasNiche for str
impl MaybeHasNiche for str
type MnArray = NoNiche<NicheForUnsized>
Source§impl<'a, B: 'a + ToOwned + MaybeHasNiche + ?Sized> MaybeHasNiche for Cow<'a, B>
impl<'a, B: 'a + ToOwned + MaybeHasNiche + ?Sized> MaybeHasNiche for Cow<'a, B>
type MnArray = <B as MaybeHasNiche>::MnArray
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.
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.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)
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)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, TArr<<D as MaybeHasNiche>::MnArray, TArr<<E as MaybeHasNiche>::MnArray, TArr<<F as MaybeHasNiche>::MnArray, TArr<<G as MaybeHasNiche>::MnArray, TArr<<H as MaybeHasNiche>::MnArray, TArr<<I as MaybeHasNiche>::MnArray, TArr<<J as MaybeHasNiche>::MnArray, TArr<<K as MaybeHasNiche>::MnArray, TArr<<L as MaybeHasNiche>::MnArray, 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> MaybeHasNiche for (A, B, C, D, E, F, G, H, I, J, K)
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)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, TArr<<D as MaybeHasNiche>::MnArray, TArr<<E as MaybeHasNiche>::MnArray, TArr<<F as MaybeHasNiche>::MnArray, TArr<<G as MaybeHasNiche>::MnArray, TArr<<H as MaybeHasNiche>::MnArray, TArr<<I as MaybeHasNiche>::MnArray, TArr<<J as MaybeHasNiche>::MnArray, TArr<<K as MaybeHasNiche>::MnArray, ATerm>>>>>>>>>>>
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)
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)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, TArr<<D as MaybeHasNiche>::MnArray, TArr<<E as MaybeHasNiche>::MnArray, TArr<<F as MaybeHasNiche>::MnArray, TArr<<G as MaybeHasNiche>::MnArray, TArr<<H as MaybeHasNiche>::MnArray, TArr<<I as MaybeHasNiche>::MnArray, TArr<<J as MaybeHasNiche>::MnArray, ATerm>>>>>>>>>>
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)
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)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, TArr<<D as MaybeHasNiche>::MnArray, TArr<<E as MaybeHasNiche>::MnArray, TArr<<F as MaybeHasNiche>::MnArray, TArr<<G as MaybeHasNiche>::MnArray, TArr<<H as MaybeHasNiche>::MnArray, TArr<<I as MaybeHasNiche>::MnArray, ATerm>>>>>>>>>
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)
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)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, TArr<<D as MaybeHasNiche>::MnArray, TArr<<E as MaybeHasNiche>::MnArray, TArr<<F as MaybeHasNiche>::MnArray, TArr<<G as MaybeHasNiche>::MnArray, TArr<<H as MaybeHasNiche>::MnArray, ATerm>>>>>>>>
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)
impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche, G: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F, G)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, TArr<<D as MaybeHasNiche>::MnArray, TArr<<E as MaybeHasNiche>::MnArray, TArr<<F as MaybeHasNiche>::MnArray, TArr<<G as MaybeHasNiche>::MnArray, ATerm>>>>>>>
Source§impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F)
impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche, F: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E, F)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, TArr<<D as MaybeHasNiche>::MnArray, TArr<<E as MaybeHasNiche>::MnArray, TArr<<F as MaybeHasNiche>::MnArray, ATerm>>>>>>
Source§impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E)
impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche, E: MaybeHasNiche> MaybeHasNiche for (A, B, C, D, E)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, TArr<<D as MaybeHasNiche>::MnArray, TArr<<E as MaybeHasNiche>::MnArray, ATerm>>>>>
Source§impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche> MaybeHasNiche for (A, B, C, D)
impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche, D: MaybeHasNiche> MaybeHasNiche for (A, B, C, D)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, TArr<<D as MaybeHasNiche>::MnArray, ATerm>>>>
Source§impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche> MaybeHasNiche for (A, B, C)
impl<A: MaybeHasNiche, B: MaybeHasNiche, C: MaybeHasNiche> MaybeHasNiche for (A, B, C)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, TArr<<C as MaybeHasNiche>::MnArray, ATerm>>>
Source§impl<A: MaybeHasNiche, B: MaybeHasNiche> MaybeHasNiche for (A, B)
impl<A: MaybeHasNiche, B: MaybeHasNiche> MaybeHasNiche for (A, B)
type MnArray = TArr<<A as MaybeHasNiche>::MnArray, TArr<<B as MaybeHasNiche>::MnArray, ATerm>>
Source§impl<T, N: ArrayLength + IsGreater<U0, Output = B>, B: MoreThan0<T, N>> MaybeHasNiche for GenericArray<T, N>
impl<T, N: ArrayLength + IsGreater<U0, Output = B>, B: MoreThan0<T, N>> MaybeHasNiche for GenericArray<T, N>
Source§impl<T, const N: usize> MaybeHasNiche for [T; N]where
Const<N>: ToUInt<Output: ArrayLength>,
GenericArray<T, <Const<N> as ToUInt>::Output>: MaybeHasNiche,
impl<T, const N: usize> MaybeHasNiche for [T; N]where
Const<N>: ToUInt<Output: ArrayLength>,
GenericArray<T, <Const<N> as ToUInt>::Output>: MaybeHasNiche,
type MnArray = <GenericArray<T, <Const<N> as ToUInt>::Output> as MaybeHasNiche>::MnArray
Source§impl<T: ?Sized + MaybeHasNiche> MaybeHasNiche for &T
impl<T: ?Sized + MaybeHasNiche> MaybeHasNiche for &T
type MnArray = <T as MaybeHasNiche>::MnArray
Source§impl<T: ?Sized + MaybeHasNiche> MaybeHasNiche for Arc<T>
impl<T: ?Sized + MaybeHasNiche> MaybeHasNiche for Arc<T>
type MnArray = <T as MaybeHasNiche>::MnArray
Source§impl<T: ?Sized + MaybeHasNiche> MaybeHasNiche for Box<T>
impl<T: ?Sized + MaybeHasNiche> MaybeHasNiche for Box<T>
type MnArray = <T as MaybeHasNiche>::MnArray
Source§impl<T: ?Sized> MaybeHasNiche for PhantomData<T>
impl<T: ?Sized> MaybeHasNiche for PhantomData<T>
type MnArray = NoNiche<ZeroNoNiche<<PhantomData<T> as Size>::Size>>
Source§impl<T: MaybeHasNiche<MnArray: MnArray<MaybeNiche = Mn>>, Mn: Niche<NeedsTag = B, N: Add<B, Output: ArrayLength>>, B: OptionNicheWrapper> MaybeHasNiche for Option<T>
impl<T: MaybeHasNiche<MnArray: MnArray<MaybeNiche = Mn>>, Mn: Niche<NeedsTag = B, N: Add<B, Output: ArrayLength>>, B: OptionNicheWrapper> MaybeHasNiche for Option<T>
Source§impl<T: MaybeHasNiche> MaybeHasNiche for (T,)
impl<T: MaybeHasNiche> MaybeHasNiche for (T,)
type MnArray = <T as MaybeHasNiche>::MnArray
Source§impl<T> MaybeHasNiche for Vec<T>
impl<T> MaybeHasNiche for Vec<T>
type MnArray = NoNiche<NicheForUnsized>
Source§impl<T> MaybeHasNiche for VecDeque<T>
impl<T> MaybeHasNiche for VecDeque<T>
type MnArray = NoNiche<NicheForUnsized>
Source§impl<const S: usize> MaybeHasNiche for CidGeneric<S>
Available on crate feature cid only.varint inside.
impl<const S: usize> MaybeHasNiche for CidGeneric<S>
Available on crate feature
cid only.varint inside.