Struct stabby_abi::istable::Array
source · pub struct Array<Offset: Unsigned, T, Rest>(/* private fields */);Expand description
A type-fu linked list.
Trait Implementations§
source§impl<Offset: Unsigned, T: NonZero, Rest: IBitMask> IBitMask for Array<Offset, T, Rest>
impl<Offset: Unsigned, T: NonZero, Rest: IBitMask> IBitMask for Array<Offset, T, Rest>
§type ByteAt<O: Unsigned> = <<Offset as IUnsigned>::Equal<O> as IBit>::UTernary<T, <Rest as IBitMask>::ByteAt<O>>
type ByteAt<O: Unsigned> = <<Offset as IUnsigned>::Equal<O> as IBit>::UTernary<T, <Rest as IBitMask>::ByteAt<O>>
Self[O]§type BitAnd<Mask: IBitMask> = <<<T as IUnsigned>::BitAnd<<Mask as IBitMask>::ByteAt<Offset>> as IUnsigned>::Equal<UTerm> as IBit>::BmTernary<<Rest as IBitMask>::BitAnd<Mask>, Array<Offset, <<T as IUnsigned>::BitAnd<<Mask as IBitMask>::ByteAt<Offset>> as IUnsigned>::NonZero, <Rest as IBitMask>::BitAnd<Mask>>>
type BitAnd<Mask: IBitMask> = <<<T as IUnsigned>::BitAnd<<Mask as IBitMask>::ByteAt<Offset>> as IUnsigned>::Equal<UTerm> as IBit>::BmTernary<<Rest as IBitMask>::BitAnd<Mask>, Array<Offset, <<T as IUnsigned>::BitAnd<<Mask as IBitMask>::ByteAt<Offset>> as IUnsigned>::NonZero, <Rest as IBitMask>::BitAnd<Mask>>>
Self & T§type Shift<O: Unsigned> = Array<<Offset as IUnsigned>::Add<O>, T, <Rest as IBitMask>::Shift<O>>
type Shift<O: Unsigned> = Array<<Offset as IUnsigned>::Add<O>, T, <Rest as IBitMask>::Shift<O>>
Shift the bitmask by
O bytes.§type HasFreeByteAt<O: Unsigned> = <<<O as IUnsigned>::Equal<Offset> as IBit>::And<<T as IUnsigned>::Equal<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B1>, B1>, B1>>> as IBit>::Or<<Rest as IBitMask>::HasFreeByteAt<O>>
type HasFreeByteAt<O: Unsigned> = <<<O as IUnsigned>::Equal<Offset> as IBit>::And<<T as IUnsigned>::Equal<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B1>, B1>, B1>, B1>, B1>, B1>, B1>>> as IBit>::Or<<Rest as IBitMask>::HasFreeByteAt<O>>
Checks whether the mask is
FF at index O§type ExtractBit = <<<T as IUnsigned>::AbsSub<<T as NonZero>::TruncateAtRightmostOne> as IUnsigned>::Greater<UTerm> as IBit>::BmTernary<Array<Offset, <<T as IUnsigned>::AbsSub<<T as NonZero>::TruncateAtRightmostOne> as IUnsigned>::NonZero, Rest>, Rest>
type ExtractBit = <<<T as IUnsigned>::AbsSub<<T as NonZero>::TruncateAtRightmostOne> as IUnsigned>::Greater<UTerm> as IBit>::BmTernary<Array<Offset, <<T as IUnsigned>::AbsSub<<T as NonZero>::TruncateAtRightmostOne> as IUnsigned>::NonZero, Rest>, Rest>
Remove the next bit that will be used as a determinant in enums.
§type ExtractedBitByteOffset = Offset
type ExtractedBitByteOffset = Offset
Obtain the determinant’s offset in bytes.
§type ExtractedBitMask = <T as NonZero>::TruncateAtRightmostOne
type ExtractedBitMask = <T as NonZero>::TruncateAtRightmostOne
Obtain the determinant’s mask.
source§impl<Offset: Unsigned, T, Rest: IForbiddenValues> IForbiddenValues for Array<Offset, T, Rest>
impl<Offset: Unsigned, T, Rest: IForbiddenValues> IForbiddenValues for Array<Offset, T, Rest>
§type Shift<O: Unsigned> = Array<<Offset as IUnsigned>::Add<O>, T, <Rest as IForbiddenValues>::Shift<O>>
type Shift<O: Unsigned> = Array<<Offset as IUnsigned>::Add<O>, T, <Rest as IForbiddenValues>::Shift<O>>
Shift all values in the set by
O bytes§type Or<O: IForbiddenValues> = Or<O, Array<Offset, T, Rest>>
type Or<O: IForbiddenValues> = Or<O, Array<Offset, T, Rest>>
union(Self, T)§type SelectFrom<Mask: IBitMask> = <<<Mask as IBitMask>::HasFreeByteAt<Offset> as IBitBase>::AsForbiddenValue as ISingleForbiddenValue>::And<<<Rest as IForbiddenValues>::SelectFrom<Mask> as ISingleForbiddenValue>::Push<Offset, T>>
type SelectFrom<Mask: IBitMask> = <<<Mask as IBitMask>::HasFreeByteAt<Offset> as IBitBase>::AsForbiddenValue as ISingleForbiddenValue>::And<<<Rest as IForbiddenValues>::SelectFrom<Mask> as ISingleForbiddenValue>::Push<Offset, T>>
Extract a single forbidden value that fits within
Mask§type SelectOne = Array<Offset, T, <Rest as IForbiddenValues>::SelectOne>
type SelectOne = Array<Offset, T, <Rest as IForbiddenValues>::SelectOne>
Extract the first available forbidden value.
source§impl<Offset: Unsigned, T, Rest: ISingleForbiddenValue> ISingleForbiddenValue for Array<Offset, T, Rest>
impl<Offset: Unsigned, T, Rest: ISingleForbiddenValue> ISingleForbiddenValue for Array<Offset, T, Rest>
§type Or<V: ISingleForbiddenValue> = Array<Offset, T, Rest>
type Or<V: ISingleForbiddenValue> = Array<Offset, T, Rest>
Self == End ? T : Self§type And<V: ISingleForbiddenValue> = V
type And<V: ISingleForbiddenValue> = V
T == End ? Self : Tsource§impl<O1: Unsigned, T1, R1, O2: Unsigned, T2, R2: IBitMask> Includes<Array<O1, T1, R1>> for Array<O2, T2, R2>
impl<O1: Unsigned, T1, R1, O2: Unsigned, T2, R2: IBitMask> Includes<Array<O1, T1, R1>> for Array<O2, T2, R2>
source§impl<O1: Unsigned, T1, O2: Unsigned, T2, R2: IBitMask> IncludesComputer<(O1, T1)> for Array<O2, T2, R2>
impl<O1: Unsigned, T1, O2: Unsigned, T2, R2: IBitMask> IncludesComputer<(O1, T1)> for Array<O2, T2, R2>
source§impl<O1: Unsigned, T1, O2: Unsigned, T2, R2> IncludesComputer<(O1, T1, B0)> for Array<O2, T2, R2>
impl<O1: Unsigned, T1, O2: Unsigned, T2, R2> IncludesComputer<(O1, T1, B0)> for Array<O2, T2, R2>
§type Output = <R2 as IncludesComputer<(O1, T1)>>::Output
type Output = <R2 as IncludesComputer<(O1, T1)>>::Output
Support for stabby computations
source§impl<O1: Unsigned, T1, O2: Unsigned, T2: Unsigned, R2: IBitMask> IncludesComputer<(O1, T1, B1)> for Array<O2, T2, R2>
impl<O1: Unsigned, T1, O2: Unsigned, T2: Unsigned, R2: IBitMask> IncludesComputer<(O1, T1, B1)> for Array<O2, T2, R2>
source§impl<O1: Unsigned, T1, O2: Unsigned, T2, R2: IBitMask> IncludesComputer<(O1, T1, B1, B0)> for Array<O2, T2, R2>
impl<O1: Unsigned, T1, O2: Unsigned, T2, R2: IBitMask> IncludesComputer<(O1, T1, B1, B0)> for Array<O2, T2, R2>
source§impl<O1: Unsigned, T1, O2: Unsigned, T2, R2: IBitMask> IncludesComputer<(O1, T1, B1, B1)> for Array<O2, T2, R2>
impl<O1: Unsigned, T1, O2: Unsigned, T2, R2: IBitMask> IncludesComputer<(O1, T1, B1, B1)> for Array<O2, T2, R2>
source§impl<Offset: Unsigned, Value: Unsigned, Tail: IForbiddenValues + IntoValueIsErr> IntoValueIsErr for Array<Offset, Value, Tail>
impl<Offset: Unsigned, Value: Unsigned, Tail: IForbiddenValues + IntoValueIsErr> IntoValueIsErr for Array<Offset, Value, Tail>
§type ValueIsErr = ValueIsErr<Offset, Value, <Tail as IntoValueIsErr>::ValueIsErr>
type ValueIsErr = ValueIsErr<Offset, Value, <Tail as IntoValueIsErr>::ValueIsErr>
The coerced type.
Auto Trait Implementations§
impl<Offset, T, Rest> Freeze for Array<Offset, T, Rest>where
Offset: IUnsignedBase,
impl<Offset, T, Rest> RefUnwindSafe for Array<Offset, T, Rest>
impl<Offset, T, Rest> Send for Array<Offset, T, Rest>
impl<Offset, T, Rest> Sync for Array<Offset, T, Rest>
impl<Offset, T, Rest> Unpin for Array<Offset, T, Rest>
impl<Offset, T, Rest> UnwindSafe for Array<Offset, T, Rest>
Blanket Implementations§
source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more