[−][src]Trait abi_stable::abi_stability::stable_abi_trait::SharedStableAbi
Represents a type whose layout is stable.
This trait can be derived using ``.
Safety
The layout of types implementing this trait must be stable across minor versions,
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
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 AbiStable.
An alternative for types where IsNonZeroType=False
,you can use abi_stable::ROption
.
Non-exhaustive list of std types that are NonZero:
-
&T (any T).
-
&mut T (any T).
-
extern fn() : Any combination of StableAbi parameter/return types.
-
std::ptr::NonNull
-
std::num::NonZero*
type Kind: TypeKindTrait
The kind of abi stability of this type,there are 2:
-
ValueKind:The layout of this type does not change in minor versions.
-
PrefixKind: A struct which can add fields in minor versions, only usable behind a shared reference, used to implement extensible vtables and modules.
type StaticEquivalent: 'static
A version of the type which does not borrow anything, used to create a UTypeId for doing layout checking.
Associated Constants
const S_LAYOUT: &'static TypeLayout
The layout of the type provided by implementors.
const S_ABI_INFO: &'static AbiInfoWrapper
The layout of the type,derived from Self::LAYOUT and associated types.
Implementations on Foreign Types
impl<T> SharedStableAbi for PhantomData<T> where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = PhantomData<T::StaticEquivalent>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for ()
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = ()
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for Void
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<'a, T> SharedStableAbi for &'a T where
T: 'a + SharedStableAbi,
[src]
T: 'a + SharedStableAbi,
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = &'static T::StaticEquivalent
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<'a, T> SharedStableAbi for &'a mut T where
T: 'a + StableAbi,
[src]
T: 'a + StableAbi,
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = &'static mut T::StaticEquivalent
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for NonNull<T> where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = NonNull<T::StaticEquivalent>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for AtomicPtr<T> where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = AtomicPtr<T::StaticEquivalent>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for *const T where
T: SharedStableAbi,
[src]
T: SharedStableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = *const T::StaticEquivalent
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for *mut T where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = *mut T::StaticEquivalent
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 0] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 0]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 1] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 1]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 2] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 2]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 3] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 3]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 4] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 4]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 5] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 5]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 6] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 6]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 7] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 7]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 8] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 8]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 9] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 9]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 10] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 10]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 11] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 11]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 12] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 12]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 13] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 13]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 14] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 14]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 15] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 15]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 16] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 16]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 17] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 17]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 18] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 18]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 19] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 19]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 20] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 20]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 21] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 21]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 22] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 22]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 23] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 23]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 24] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 24]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 25] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 25]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 26] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 26]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 27] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 27]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 28] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 28]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 29] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 29]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 30] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 30]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 31] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 31]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for [T; 32] where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = [T::StaticEquivalent; 32]
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for Option<T> where
T: StableAbi<IsNonZeroType = True>,
[src]
T: StableAbi<IsNonZeroType = True>,
Implementing abi stability for Option
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Option<T::StaticEquivalent>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for u8
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for i8
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for u16
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for i16
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for u32
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for i32
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for u64
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for i64
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for usize
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for isize
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for bool
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for AtomicBool
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for AtomicIsize
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for AtomicUsize
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for NonZeroU8
[src]
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for NonZeroU16
[src]
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for NonZeroU32
[src]
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for NonZeroU64
[src]
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for NonZeroUsize
[src]
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<N> SharedStableAbi for Wrapping<N> where
N: StableAbi,
[src]
N: StableAbi,
type Kind = ValueKind
type IsNonZeroType = N::IsNonZeroType
type StaticEquivalent = Wrapping<N::StaticEquivalent>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<P> SharedStableAbi for Pin<P> where
P: StableAbi,
[src]
P: StableAbi,
type Kind = ValueKind
type IsNonZeroType = P::IsNonZeroType
type StaticEquivalent = Pin<P::StaticEquivalent>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for ManuallyDrop<T> where
T: StableAbi,
[src]
T: StableAbi,
type Kind = ValueKind
type IsNonZeroType = T::IsNonZeroType
type StaticEquivalent = ManuallyDrop<T::StaticEquivalent>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for extern "C" fn()
[src]
This is the only function type that implements StableAbi so as to make it more obvious that functions involving lifetimes cannot implement this trait directly (because of higher ranked trait bounds).
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for unsafe extern "C" fn()
[src]
This is the only function type that implements StableAbi so as to make it more obvious that functions involving lifetimes cannot implement this trait directly (because of higher ranked trait bounds).
type Kind = ValueKind
type IsNonZeroType = True
type StaticEquivalent = Self
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
Implementors
impl SharedStableAbi for TypeKind
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = TypeKind
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for LifetimeIndex
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = LifetimeIndex
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for RustPrimitive
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RustPrimitive
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for TLData
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = TLData
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for TLDataDiscriminant
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = TLDataDiscriminant
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for FormattingMode
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = FormattingMode
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for CallReferentDrop
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = CallReferentDrop
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for RCmpOrdering
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RCmpOrdering
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for AbiInfo
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = AbiInfo
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for AbiInfoWrapper
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = AbiInfoWrapper
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for GetAbiInfo where
extern "C" fn(): __StableAbi,
[src]
extern "C" fn(): __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = GetAbiInfo
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for FullType
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = FullType
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for GenericParams
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = GenericParams
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for TLEnumVariant
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = TLEnumVariant
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for TLField
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = TLField
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for TLFieldAndType where
&'static TLField: __StableAbi,
[src]
&'static TLField: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = TLFieldAndType
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for TypeLayout
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = TypeLayout
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for TypeInfo
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = TypeInfo
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for SyncSend
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = SyncSend
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for UnsyncUnsend
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = UnsyncUnsend
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for PTField
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = PTField
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for PTStructLayout
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = PTStructLayout
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for RIoError
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RIoError
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for RIoErrorKind
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RIoErrorKind
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for RString
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RString
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for StaticStr
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = StaticStr
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for RDuration
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RDuration
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for UTypeId
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = UTypeId
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for VersionNumber
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = VersionNumber
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl SharedStableAbi for VersionStrings
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = VersionStrings
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<'a> SharedStableAbi for RStr<'a>
[src]
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RStr<'static>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<'a, B, O> SharedStableAbi for RCow<'a, B, O> where
B: BorrowOwned<'a>,
O: __StableAbi,
B: __StableAbi,
<B as SharedStableAbi>::StaticEquivalent: BorrowOwned<'static>,
[src]
B: BorrowOwned<'a>,
O: __StableAbi,
B: __StableAbi,
<B as SharedStableAbi>::StaticEquivalent: BorrowOwned<'static>,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RCow<'static, __StaticEquivalent<B>, __StaticEquivalent<O>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<'a, T> SharedStableAbi for RSlice<'a, T> where
T: __StableAbi,
T: 'a,
[src]
T: __StableAbi,
T: 'a,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RSlice<'static, __StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<'a, T> SharedStableAbi for RSliceMut<'a, T> where
T: __StableAbi,
T: 'a,
[src]
T: __StableAbi,
T: 'a,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RSliceMut<'static, __StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<A> SharedStableAbi for Tuple1<A> where
A: __StableAbi,
[src]
A: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = Tuple1<__StaticEquivalent<A>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<A, B> SharedStableAbi for Tuple2<A, B> where
B: __StableAbi,
A: __StableAbi,
[src]
B: __StableAbi,
A: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = Tuple2<__StaticEquivalent<A>, __StaticEquivalent<B>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<A, B, C> SharedStableAbi for Tuple3<A, B, C> where
B: __StableAbi,
A: __StableAbi,
C: __StableAbi,
[src]
B: __StableAbi,
A: __StableAbi,
C: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = Tuple3<__StaticEquivalent<A>, __StaticEquivalent<B>, __StaticEquivalent<C>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<A, B, C, D> SharedStableAbi for Tuple4<A, B, C, D> where
D: __StableAbi,
A: __StableAbi,
C: __StableAbi,
B: __StableAbi,
[src]
D: __StableAbi,
A: __StableAbi,
C: __StableAbi,
B: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = Tuple4<__StaticEquivalent<A>, __StaticEquivalent<B>, __StaticEquivalent<C>, __StaticEquivalent<D>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<ErasedPtr> SharedStableAbi for HasherTraitObject<ErasedPtr> where
ErasedPtr: __StableAbi,
[src]
ErasedPtr: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = HasherTraitObject<__StaticEquivalent<ErasedPtr>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<M> SharedStableAbi for RBoxError_<M> where
M: __StableAbi,
[src]
M: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RBoxError_<__StaticEquivalent<M>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<P> SharedStableAbi for VirtualWrapper<P> where
P: __StableAbi,
[src]
P: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = VirtualWrapper<__StaticEquivalent<P>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for ROption<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = ROption<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for UnsafeOpaqueField<T>
[src]
type Kind = ValueKind
type IsNonZeroType = False
type StaticEquivalent = ()
it is fine to use ()
because this type is treated as a primitive anyway.
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for CmpIgnored<T> where
T: __StableAbi,
T: __StableAbi,
[src]
T: __StableAbi,
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = CmpIgnored<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for UnsafeIgnoredType<T>
[src]
type IsNonZeroType = False
type Kind = ValueKind
type StaticEquivalent = ()
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for ZeroSized<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = ZeroSized<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for RRange<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RRange<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for RRangeFrom<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RRangeFrom<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for RRangeInclusive<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RRangeInclusive<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for RRangeTo<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RRangeTo<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for RRangeToInclusive<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RRangeToInclusive<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for RArc<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RArc<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for RBox<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RBox<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T> SharedStableAbi for RVec<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RVec<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T, E> SharedStableAbi for RResult<T, E> where
E: __StableAbi,
T: __StableAbi,
[src]
E: __StableAbi,
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = RResult<__StaticEquivalent<T>, __StaticEquivalent<E>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T: 'static> SharedStableAbi for WithLayout<T> where
T: __StableAbi,
[src]
T: __StableAbi,
type IsNonZeroType = False
type Kind = __ValueKind
type StaticEquivalent = WithLayout<__StaticEquivalent<T>>
const S_LAYOUT: &'static TypeLayout
[src]
const S_ABI_INFO: &'static AbiInfoWrapper
[src]
impl<T: 'static> SharedStableAbi for StaticSlice<T> where
T: __StableAbi,
[src]
T: __StableAbi,