[][src]Trait abi_stable::StableAbi

pub unsafe trait StableAbi: GetStaticEquivalent_ {
    type IsNonZeroType: Boolean;

    pub const LAYOUT: &'static TypeLayout;
    pub const ABI_CONSTS: AbiConsts;
}

Represents a type whose layout is stable.

This trait can be derived using #[derive(StableAbi)].

Safety

The layout specified in LAYOUT must be correct, otherwise type checking when loading a dynamic library would be unsound, and passing this into a dynamic library would be equivalent to transmuting it.

Caveats

This trait cannot be directly implemented for functions that take lifetime parameters, because of that,#[derive(StableAbi)] detects the presence of extern fn types in type definitions.

Associated Types

type IsNonZeroType: Boolean[src]

Whether this type has a single invalid bit-pattern.

Possible values:True/False

Some standard library types have a single value that is invalid for them eg:0,null. these types are the only ones which can be stored in a Option<_> that implements StableAbi.

An alternative for types where IsNonZeroType=False,you can use ROption.

Non-exhaustive list of std types that are NonZero:

  • &T (any T).

  • &mut T (any T).

  • extern "C" fn().

  • std::ptr::NonNull

  • std::num::NonZero*

Loading content...

Associated Constants

pub const LAYOUT: &'static TypeLayout[src]

The layout of the type provided by implementors.

pub const ABI_CONSTS: AbiConsts[src]

const-equivalents of the associated types.

Loading content...

Implementations on Foreign Types

impl<T> StableAbi for PhantomData<T> where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T0> StableAbi for PhantomData<(T0,)> where
    T0: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1> StableAbi for PhantomData<(T0, T1)> where
    T0: StableAbi,
    T1: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2> StableAbi for PhantomData<(T0, T1, T2)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3> StableAbi for PhantomData<(T0, T1, T2, T3)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4> StableAbi for PhantomData<(T0, T1, T2, T3, T4)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6, T7> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6, T7)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi,
    T7: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi,
    T7: StableAbi,
    T8: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi,
    T7: StableAbi,
    T8: StableAbi,
    T9: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi,
    T7: StableAbi,
    T8: StableAbi,
    T9: StableAbi,
    T10: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi,
    T7: StableAbi,
    T8: StableAbi,
    T9: StableAbi,
    T10: StableAbi,
    T11: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi,
    T7: StableAbi,
    T8: StableAbi,
    T9: StableAbi,
    T10: StableAbi,
    T11: StableAbi,
    T12: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi,
    T7: StableAbi,
    T8: StableAbi,
    T9: StableAbi,
    T10: StableAbi,
    T11: StableAbi,
    T12: StableAbi,
    T13: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi,
    T7: StableAbi,
    T8: StableAbi,
    T9: StableAbi,
    T10: StableAbi,
    T11: StableAbi,
    T12: StableAbi,
    T13: StableAbi,
    T14: StableAbi
[src]

type IsNonZeroType = False

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> StableAbi for PhantomData<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> where
    T0: StableAbi,
    T1: StableAbi,
    T2: StableAbi,
    T3: StableAbi,
    T4: StableAbi,
    T5: StableAbi,
    T6: StableAbi,
    T7: StableAbi,
    T8: StableAbi,
    T9: StableAbi,
    T10: StableAbi,
    T11: StableAbi,
    T12: StableAbi,
    T13: StableAbi,
    T14: StableAbi,
    T15: StableAbi
[src]

type IsNonZeroType = False

impl StableAbi for ()[src]

type IsNonZeroType = False

impl<'a, T> StableAbi for &'a T where
    T: 'a + StableAbi
[src]

type IsNonZeroType = True

impl<'a, T> StableAbi for &'a mut T where
    T: 'a + StableAbi
[src]

type IsNonZeroType = True

impl<T> StableAbi for NonNull<T> where
    T: StableAbi
[src]

type IsNonZeroType = True

impl<T> StableAbi for AtomicPtr<T> where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for *const T where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for *mut T where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 0] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 1] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 2] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 3] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 4] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 5] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 6] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 7] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 8] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 9] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 10] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 11] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 12] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 13] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 14] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 15] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 16] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 17] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 18] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 19] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 20] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 21] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 22] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 23] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 24] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 25] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 26] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 27] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 28] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 29] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 30] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 31] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for [T; 32] where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for Option<T> where
    T: StableAbi<IsNonZeroType = True>, 
[src]

Implementing abi stability for Option is fine if T is a NonZero primitive type.

type IsNonZeroType = False

impl StableAbi for u8[src]

type IsNonZeroType = False

impl StableAbi for i8[src]

type IsNonZeroType = False

impl StableAbi for u16[src]

type IsNonZeroType = False

impl StableAbi for i16[src]

type IsNonZeroType = False

impl StableAbi for u32[src]

type IsNonZeroType = False

impl StableAbi for i32[src]

type IsNonZeroType = False

impl StableAbi for u64[src]

type IsNonZeroType = False

impl StableAbi for i64[src]

type IsNonZeroType = False

impl StableAbi for usize[src]

type IsNonZeroType = False

impl StableAbi for isize[src]

type IsNonZeroType = False

impl StableAbi for bool[src]

type IsNonZeroType = False

impl StableAbi for AtomicBool[src]

type IsNonZeroType = False

impl StableAbi for AtomicIsize[src]

type IsNonZeroType = False

impl StableAbi for AtomicUsize[src]

type IsNonZeroType = False

impl StableAbi for NonZeroU8[src]

type IsNonZeroType = True

impl StableAbi for NonZeroU16[src]

type IsNonZeroType = True

impl StableAbi for NonZeroU32[src]

type IsNonZeroType = True

impl StableAbi for NonZeroU64[src]

type IsNonZeroType = True

impl StableAbi for NonZeroUsize[src]

type IsNonZeroType = True

impl StableAbi for AtomicI8[src]

type IsNonZeroType = False

impl StableAbi for AtomicI16[src]

type IsNonZeroType = False

impl StableAbi for AtomicI32[src]

type IsNonZeroType = False

impl StableAbi for AtomicI64[src]

type IsNonZeroType = False

impl StableAbi for AtomicU8[src]

type IsNonZeroType = False

impl StableAbi for AtomicU16[src]

type IsNonZeroType = False

impl StableAbi for AtomicU32[src]

type IsNonZeroType = False

impl StableAbi for AtomicU64[src]

type IsNonZeroType = False

impl StableAbi for NonZeroI8[src]

type IsNonZeroType = True

impl StableAbi for NonZeroI16[src]

type IsNonZeroType = True

impl StableAbi for NonZeroI32[src]

type IsNonZeroType = True

impl StableAbi for NonZeroI64[src]

type IsNonZeroType = True

impl StableAbi for NonZeroIsize[src]

type IsNonZeroType = True

impl<T> StableAbi for MaybeUninit<T> where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<P> StableAbi for Wrapping<P> where
    P: StableAbi
[src]

type IsNonZeroType = P::IsNonZeroType

impl<P> StableAbi for Pin<P> where
    P: StableAbi
[src]

type IsNonZeroType = P::IsNonZeroType

impl<P> StableAbi for ManuallyDrop<P> where
    P: StableAbi
[src]

type IsNonZeroType = P::IsNonZeroType

impl<P> StableAbi for Cell<P> where
    P: StableAbi
[src]

type IsNonZeroType = False

impl<P> StableAbi for UnsafeCell<P> where
    P: StableAbi
[src]

type IsNonZeroType = False

impl StableAbi for PhantomPinned[src]

type IsNonZeroType = False

impl StableAbi for Void[src]

type IsNonZeroType = False

impl StableAbi for extern "C" fn()[src]

type IsNonZeroType = True

impl StableAbi for unsafe extern "C" fn()[src]

type IsNonZeroType = True

Loading content...

Implementors

impl StableAbi for ExtraChecksError[src]

type IsNonZeroType = False

impl StableAbi for ROnceState[src]

type IsNonZeroType = False

impl StableAbi for IsLayoutChecked[src]

type IsNonZeroType = False

impl StableAbi for RootModuleError[src]

type IsNonZeroType = False

impl StableAbi for CallReferentDrop[src]

type IsNonZeroType = False

impl StableAbi for Deallocate[src]

type IsNonZeroType = False

impl StableAbi for PointerKind[src]

type IsNonZeroType = False

impl StableAbi for IsAccessible[src]

type IsNonZeroType = False

impl StableAbi for IsConditional[src]

type IsNonZeroType = False

impl StableAbi for ModReflMode[src]

type IsNonZeroType = False

impl StableAbi for RCmpOrdering[src]

type IsNonZeroType = False

impl StableAbi for RSeekFrom[src]

type IsNonZeroType = False

impl StableAbi for DiscriminantRepr[src]

type IsNonZeroType = False

impl StableAbi for FieldAccessor[src]

type IsNonZeroType = False

impl StableAbi for GenericTLData[src]

type IsNonZeroType = False

impl StableAbi for MonoTLData[src]

type IsNonZeroType = False

impl StableAbi for ReprAttr[src]

type IsNonZeroType = False

impl StableAbi for TLDataDiscriminant[src]

type IsNonZeroType = False

impl StableAbi for TLDiscriminant[src]

type IsNonZeroType = False

impl StableAbi for TLFieldOrFunction[src]

type IsNonZeroType = False

impl StableAbi for TLPrimitive[src]

type IsNonZeroType = False

impl StableAbi for CTVariant[src]

type IsNonZeroType = False

impl StableAbi for Primitive[src]

type IsNonZeroType = False

impl StableAbi for TagVariant[src]

type IsNonZeroType = False

impl StableAbi for ConstGeneric[src]

type IsNonZeroType = False

impl StableAbi for ExtraChecks_Interface[src]

type IsNonZeroType = False

impl StableAbi for TypeChecker_Interface[src]

type IsNonZeroType = False

impl StableAbi for AbiConsts[src]

type IsNonZeroType = False

impl StableAbi for CloneEqInterface[src]

type IsNonZeroType = False

impl StableAbi for CloneInterface[src]

type IsNonZeroType = False

impl StableAbi for DebugDisplayInterface[src]

type IsNonZeroType = False

impl StableAbi for DefaultInterface[src]

type IsNonZeroType = False

impl StableAbi for FmtWriteInterface[src]

type IsNonZeroType = False

impl StableAbi for IoWriteInterface[src]

type IsNonZeroType = False

impl StableAbi for PartialEqInterface[src]

type IsNonZeroType = False

impl StableAbi for TypeInfo[src]

type IsNonZeroType = False

impl StableAbi for DebugDisplayObject[src]

type IsNonZeroType = False

impl StableAbi for ROnce[src]

type IsNonZeroType = False

impl StableAbi for RawValueBox[src]

impl StableAbi for Module_Ref where
    Module: PrefixTypeTrait
[src]

type IsNonZeroType = True

impl StableAbi for ValidTag_Interface[src]

type IsNonZeroType = False

impl StableAbi for ValidTag_Storage[src]

type IsNonZeroType = False

impl StableAbi for CAbiTestingFns[src]

type IsNonZeroType = False

impl StableAbi for AbiHeader[src]

type IsNonZeroType = False

impl StableAbi for ErasedRootModuleConsts[src]

type IsNonZeroType = False

impl StableAbi for LibHeader[src]

type IsNonZeroType = False

impl StableAbi for NotCopyNotClone[src]

type IsNonZeroType = False

impl StableAbi for SyncSend[src]

type IsNonZeroType = False

impl StableAbi for SyncUnsend[src]

type IsNonZeroType = False

impl StableAbi for UnsyncSend[src]

type IsNonZeroType = False

impl StableAbi for UnsyncUnsend[src]

type IsNonZeroType = False

impl StableAbi for EnumInfo[src]

type IsNonZeroType = False

impl StableAbi for PTStructLayout[src]

type IsNonZeroType = False

impl StableAbi for ConstExample_Interface[src]

type IsNonZeroType = False

impl StableAbi for VersionNumber[src]

type IsNonZeroType = False

impl StableAbi for VersionStrings[src]

type IsNonZeroType = <RStr<'static> as __StableAbi>::IsNonZeroType

impl StableAbi for RString[src]

type IsNonZeroType = False

impl StableAbi for RDuration[src]

type IsNonZeroType = False

impl StableAbi for RIoError[src]

type IsNonZeroType = False

impl StableAbi for RIoErrorKind[src]

type IsNonZeroType = False

impl StableAbi for UTypeId[src]

type IsNonZeroType = False

impl StableAbi for CompFieldAccessor[src]

impl StableAbi for CompGenericParams[src]

type IsNonZeroType = False

impl StableAbi for CompTLField[src]

impl StableAbi for CompTLFields[src]

type IsNonZeroType = False

impl StableAbi for CompTLFunction[src]

type IsNonZeroType = False

impl StableAbi for GenericTLEnum[src]

type IsNonZeroType = False

impl StableAbi for GenericTLPrefixType[src]

type IsNonZeroType = False

impl StableAbi for IncompatibleWithNonExhaustive[src]

type IsNonZeroType = False

impl StableAbi for IsExhaustive[src]

impl StableAbi for ItemInfo[src]

type IsNonZeroType = False

impl StableAbi for LifetimeIndex[src]

impl StableAbi for LifetimeIndexArray[src]

impl StableAbi for LifetimeIndexPair[src]

impl StableAbi for LifetimeRange[src]

impl StableAbi for ModPath[src]

type IsNonZeroType = <NulStr<'static> as __StableAbi>::IsNonZeroType

impl StableAbi for MonoSharedVars[src]

type IsNonZeroType = False

impl StableAbi for MonoTLEnum[src]

type IsNonZeroType = False

impl StableAbi for MonoTLPrefixType[src]

type IsNonZeroType = False

impl StableAbi for MonoTypeLayout[src]

type IsNonZeroType = False

impl StableAbi for OptionU8[src]

impl StableAbi for OptionU16[src]

impl StableAbi for SharedVars[src]

type IsNonZeroType = False

impl StableAbi for StartLen[src]

impl StableAbi for TLDiscriminants[src]

type IsNonZeroType = False

impl StableAbi for TLField[src]

type IsNonZeroType = False

impl StableAbi for TLFields[src]

type IsNonZeroType = False

impl StableAbi for TLFunction[src]

type IsNonZeroType = False

impl StableAbi for TLFunctionSlice[src]

type IsNonZeroType = False

impl StableAbi for TLFunctions[src]

type IsNonZeroType = False

impl StableAbi for TLNonExhaustive[src]

type IsNonZeroType = False

impl StableAbi for TLPrefixType[src]

type IsNonZeroType = False

impl StableAbi for TypeLayout[src]

type IsNonZeroType = False

impl StableAbi for TypeLayoutIndex[src]

impl StableAbi for TypeLayoutRange[src]

type IsNonZeroType = False

impl StableAbi for CheckableTag[src]

type IsNonZeroType = False

impl StableAbi for Tag[src]

type IsNonZeroType = False

impl<'a> StableAbi for LifetimeArrayOrSlice<'a>[src]

type IsNonZeroType = False

impl<'a> StableAbi for HasherObject<'a>[src]

type IsNonZeroType = False

impl<'a> StableAbi for RawValueRef<'a>[src]

impl<'a> StableAbi for NulStr<'a>[src]

impl<'a> StableAbi for RStr<'a>[src]

type IsNonZeroType = False

impl<'a> StableAbi for MultipleTypeLayouts<'a>[src]

type IsNonZeroType = False

impl<'a, B: ?Sized> StableAbi for RCow<'a, B> where
    B: BorrowOwned<'a>,
    B: __GetStaticEquivalent_,
    <B as BorrowOwned<'a>>::RBorrowed: StableAbi,
    <B as BorrowOwned<'a>>::ROwned: StableAbi
[src]

type IsNonZeroType = False

impl<'a, K, V> StableAbi for REntry<'a, K, V> where
    K: __StableAbi,
    V: __StableAbi,
    K: 'a,
    V: 'a, 
[src]

type IsNonZeroType = False

impl<'a, K, V> StableAbi for ROccupiedEntry<'a, K, V> where
    K: __StableAbi,
    V: __StableAbi,
    K: 'a,
    V: 'a, 
[src]

type IsNonZeroType = False

impl<'a, K, V> StableAbi for RVacantEntry<'a, K, V> where
    K: __StableAbi,
    V: __StableAbi,
    K: 'a,
    V: 'a, 
[src]

type IsNonZeroType = False

impl<'a, T> StableAbi for RMutexGuard<'a, T> where
    T: __StableAbi,
    T: 'a, 
[src]

type IsNonZeroType = <&'a RMutex<T> as __StableAbi>::IsNonZeroType

impl<'a, T> StableAbi for RReadGuard<'a, T> where
    T: __StableAbi,
    T: 'a, 
[src]

type IsNonZeroType = <&'a RRwLock<T> as __StableAbi>::IsNonZeroType

impl<'a, T> StableAbi for RWriteGuard<'a, T> where
    T: __StableAbi,
    T: 'a, 
[src]

type IsNonZeroType = <&'a RRwLock<T> as __StableAbi>::IsNonZeroType

impl<'a, T> StableAbi for MovePtr<'a, T> where
    T: __StableAbi,
    T: 'a, 
[src]

impl<'a, T> StableAbi for RMut<'a, T> where
    T: __StableAbi,
    T: 'a, 
[src]

impl<'a, T> StableAbi for RRef<'a, T> where
    T: __StableAbi,
    T: 'a, 
[src]

impl<'a, T> StableAbi for RSlice<'a, T> where
    T: __StableAbi,
    T: 'a, 
[src]

type IsNonZeroType = False

impl<'a, T> StableAbi for RSliceMut<'a, T> where
    T: __StableAbi,
    T: 'a, 
[src]

type IsNonZeroType = False

impl<'borr, P, I, EV> StableAbi for DynTrait<'borr, P, I, EV> where
    P: GetPointerKind,
    P: __StableAbi,
    I: __StableAbi,
    EV: __StableAbi,
    I: InterfaceBound,
    VTable_Ref<'borr, P, I>: StableAbi
[src]

type IsNonZeroType = False

impl<'lt, P, I, V> StableAbi for RObject<'lt, P, I, V> where
    P: GetPointerKind,
    P: __StableAbi,
    I: __StableAbi,
    V: __GetStaticEquivalent_,
    V: PrefixStableAbi,
    I: InterfaceBound
[src]

type IsNonZeroType = False

impl<'lt, _ErasedPtr> StableAbi for ConstExample_TO<'lt, _ErasedPtr> where
    _ErasedPtr: __GetPointerKind,
    _ErasedPtr: __StableAbi,
    ConstExample_Backend<'lt, _ErasedPtr>: StableAbi
[src]

type IsNonZeroType = <ConstExample_Backend<'lt, _ErasedPtr> as __StableAbi>::IsNonZeroType

impl<A> StableAbi for Tuple1<A> where
    A: __StableAbi
[src]

type IsNonZeroType = False

impl<A> StableAbi for ArrayLen<A> where
    A: __StableAbi
[src]

type IsNonZeroType = False

impl<A, B> StableAbi for Tuple2<A, B> where
    A: __StableAbi,
    B: __StableAbi
[src]

type IsNonZeroType = False

impl<A, B, C> StableAbi for Tuple3<A, B, C> where
    A: __StableAbi,
    B: __StableAbi,
    C: __StableAbi
[src]

type IsNonZeroType = False

impl<A, B, C, D> StableAbi for Tuple4<A, B, C, D> where
    A: __StableAbi,
    B: __StableAbi,
    C: __StableAbi,
    D: __StableAbi
[src]

type IsNonZeroType = False

impl<E, S, I> StableAbi for NonExhaustive<E, S, I> where
    E: __GetStaticEquivalent_,
    S: __GetStaticEquivalent_,
    I: __GetStaticEquivalent_,
    NonExhaustiveVtable_Ref<E, S, I>: StableAbi,
    E: GetNonExhaustive<S>,
    I: InterfaceBound,
    <E as GetNonExhaustive<S>>::NonExhaustive: __StableAbi
[src]

type IsNonZeroType = False

impl<K, V> StableAbi for IntoIter<K, V> where
    K: __StableAbi,
    V: __StableAbi
[src]

impl<K, V> StableAbi for MutIterInterface<K, V> where
    K: __StableAbi,
    V: __StableAbi
[src]

type IsNonZeroType = False

impl<K, V> StableAbi for RefIterInterface<K, V> where
    K: __StableAbi,
    V: __StableAbi
[src]

type IsNonZeroType = False

impl<K, V> StableAbi for ValIterInterface<K, V> where
    K: __StableAbi,
    V: __StableAbi
[src]

type IsNonZeroType = False

impl<K, V, S> StableAbi for RHashMap<K, V, S> where
    K: __StableAbi,
    V: __StableAbi
[src]

type IsNonZeroType = False

impl<M> StableAbi for RootModuleConsts<M> where
    M: __StableAbi
[src]

type IsNonZeroType = False

impl<M> StableAbi for RBoxError_<M> where
    M: __StableAbi
[src]

type IsNonZeroType = False

impl<N> StableAbi for UnwrapEnumError<N> where
    N: __StableAbi
[src]

impl<P> StableAbi for PrefixRef<P> where
    P: PrefixStableAbi
[src]

type IsNonZeroType = True

impl<T> StableAbi for ConstructorOrValue<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for MaybeCmp<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for ROption<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for SabiUnsafeOpaqueField<T> where
    T: StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for UnsafeOpaqueField<T>[src]

type IsNonZeroType = False

impl<T> StableAbi for DEIteratorInterface<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for IteratorInterface<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for RReceiver<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for RSender<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for RMutex<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for RRwLock<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for ErasedObject<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for UnsafeIgnoredType<T>[src]

type IsNonZeroType = False

impl<T> StableAbi for BoolArray<T> where
    T: __StableAbi
[src]

impl<T> StableAbi for CmpIgnored<T> where
    T: __StableAbi
[src]

impl<T> StableAbi for Constructor<T> where
    T: __StableAbi
[src]

type IsNonZeroType = True

impl<T> StableAbi for LateStaticRef<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for StaticRef<T> where
    T: __StableAbi
[src]

impl<T> StableAbi for RArc<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for RBox<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for RVec<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T> StableAbi for KeyValue<T> where
    T: __StableAbi
[src]

type IsNonZeroType = False

impl<T, E> StableAbi for RResult<T, E> where
    T: __StableAbi,
    E: __StableAbi
[src]

type IsNonZeroType = False

impl<T, Inline> StableAbi for RSmallBox<T, Inline> where
    T: __StableAbi,
    Inline: __GetStaticEquivalent_
[src]

type IsNonZeroType = False

impl<T: ?Sized> StableAbi for NonOwningPhantom<T> where
    PhantomData<T>: StableAbi
[src]

type IsNonZeroType = False

impl<_ErasedPtr> StableAbi for ExtraChecks_TO<_ErasedPtr> where
    _ErasedPtr: __GetPointerKind,
    _ErasedPtr: __StableAbi,
    ExtraChecks_Backend<_ErasedPtr>: StableAbi
[src]

impl<_ErasedPtr> StableAbi for TypeChecker_TO<_ErasedPtr> where
    _ErasedPtr: __GetPointerKind,
    _ErasedPtr: __StableAbi,
    TypeChecker_Backend<_ErasedPtr>: StableAbi
[src]

impl<__Storage> StableAbi for ValidTag_NEMarker<ValidTag, __Storage>[src]

type IsNonZeroType = False

Loading content...