Struct abi_stable::erased_types::RequiredTraits
source · #[repr(C)]pub struct RequiredTraits { /* private fields */ }
Expand description
Describes which traits are required and enabled by the I:
InterfaceType
that this RequiredTraits
is created from.
§Purpose
This is what DynTrait
uses to check that the traits it
requires are compatible between library versions,
by using this type in
#[sabi(extra_checks = <here>)]
.
This type requires that auto traits are the same across versions. Non-auto traits can be added in newer versions of a library.
Implementations§
source§impl RequiredTraits
impl RequiredTraits
sourcepub const fn new<I: InterfaceType>() -> Self
pub const fn new<I: InterfaceType>() -> Self
Constructs an RequiredTraits.
sourcepub const fn contains_send(self) -> bool
pub const fn contains_send(self) -> bool
Whether the std::marker::Send
trait is required
sourcepub const fn contains_sync(self) -> bool
pub const fn contains_sync(self) -> bool
Whether the std::marker::Sync
trait is required
sourcepub const fn contains_unpin(self) -> bool
pub const fn contains_unpin(self) -> bool
Whether the std::marker::Unpin
trait is required
sourcepub const fn contains_error(self) -> bool
pub const fn contains_error(self) -> bool
Whether the std::error::Error
trait is required
sourcepub const fn contains_clone(self) -> bool
pub const fn contains_clone(self) -> bool
Whether the std::clone::Clone
trait is required
sourcepub const fn contains_default(self) -> bool
pub const fn contains_default(self) -> bool
Whether the std::default::Default
trait is required
sourcepub const fn contains_display(self) -> bool
pub const fn contains_display(self) -> bool
Whether the std::fmt::Display
trait is required
sourcepub const fn contains_debug(self) -> bool
pub const fn contains_debug(self) -> bool
Whether the std::fmt::Debug
trait is required
sourcepub const fn contains_serialize(self) -> bool
pub const fn contains_serialize(self) -> bool
Whether the serde::Serialize
trait is required
sourcepub const fn contains_partial_eq(self) -> bool
pub const fn contains_partial_eq(self) -> bool
Whether the std::cmp::PartialEq
trait is required
sourcepub const fn contains_cmp(self) -> bool
pub const fn contains_cmp(self) -> bool
Whether the std::cmp::Ord
trait is required
sourcepub const fn contains_partial_cmp(self) -> bool
pub const fn contains_partial_cmp(self) -> bool
Whether the std::cmp::PartialOrd
trait is required
sourcepub const fn contains_hash(self) -> bool
pub const fn contains_hash(self) -> bool
Whether the std::hash::Hash
trait is required
sourcepub const fn contains_iterator(self) -> bool
pub const fn contains_iterator(self) -> bool
Whether the std::iter::Iterator
trait is required
sourcepub const fn contains_double_ended_iterator(self) -> bool
pub const fn contains_double_ended_iterator(self) -> bool
Whether the std::iter::DoubleEndedIterator
trait is required
sourcepub const fn contains_fmt_write(self) -> bool
pub const fn contains_fmt_write(self) -> bool
Whether the std::fmt::Write
trait is required
sourcepub const fn contains_io_write(self) -> bool
pub const fn contains_io_write(self) -> bool
Whether the std::io::Write
trait is required
sourcepub const fn contains_io_read(self) -> bool
pub const fn contains_io_read(self) -> bool
Whether the std::io::Read
trait is required
sourcepub const fn contains_io_bufread(self) -> bool
pub const fn contains_io_bufread(self) -> bool
Whether the std::io::BufRead
trait is required
sourcepub const fn contains_io_seek(self) -> bool
pub const fn contains_io_seek(self) -> bool
Whether the std::io::Seek
trait is required
sourcepub const fn contains_deserialize(self) -> bool
pub const fn contains_deserialize(self) -> bool
Whether the [serde :: Deserialize
] trait is required
Trait Implementations§
source§impl Clone for RequiredTraits
impl Clone for RequiredTraits
source§fn clone(&self) -> RequiredTraits
fn clone(&self) -> RequiredTraits
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for RequiredTraits
impl Debug for RequiredTraits
source§impl Display for RequiredTraits
impl Display for RequiredTraits
source§impl ExtraChecks for RequiredTraits
impl ExtraChecks for RequiredTraits
source§fn type_layout(&self) -> &'static TypeLayout
fn type_layout(&self) -> &'static TypeLayout
Self
(the type that implements ExtraChecks) Read moresource§fn check_compatibility(
&self,
_layout_containing_self: &'static TypeLayout,
layout_containing_other: &'static TypeLayout,
checker: TypeCheckerMut<'_>,
) -> RResult<(), ExtraChecksError>
fn check_compatibility( &self, _layout_containing_self: &'static TypeLayout, layout_containing_other: &'static TypeLayout, checker: TypeCheckerMut<'_>, ) -> RResult<(), ExtraChecksError>
self
is compatible another type which implements ExtraChecks. Read moresource§fn nested_type_layouts(&self) -> RCowSlice<'_, &'static TypeLayout>
fn nested_type_layouts(&self) -> RCowSlice<'_, &'static TypeLayout>
source§fn combine(
&self,
_other: ExtraChecksRef<'_>,
_checker: TypeCheckerMut<'_>,
) -> RResult<ROption<ExtraChecksBox>, ExtraChecksError>
fn combine( &self, _other: ExtraChecksRef<'_>, _checker: TypeCheckerMut<'_>, ) -> RResult<ROption<ExtraChecksBox>, ExtraChecksError>
source§impl GetStaticEquivalent_ for RequiredTraits
impl GetStaticEquivalent_ for RequiredTraits
source§type StaticEquivalent = _static_RequiredTraits
type StaticEquivalent = _static_RequiredTraits
'static
equivalent of Self
source§impl StableAbi for RequiredTraits
impl StableAbi for RequiredTraits
source§type IsNonZeroType = False
type IsNonZeroType = False
source§const LAYOUT: &'static TypeLayout = _
const LAYOUT: &'static TypeLayout = _
source§const ABI_CONSTS: AbiConsts = _
const ABI_CONSTS: AbiConsts = _
const
-equivalents of the associated types.impl Copy for RequiredTraits
Auto Trait Implementations§
impl Freeze for RequiredTraits
impl RefUnwindSafe for RequiredTraits
impl Send for RequiredTraits
impl Sync for RequiredTraits
impl Unpin for RequiredTraits
impl UnwindSafe for RequiredTraits
Blanket Implementations§
source§impl<T> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
source§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
source§type Aligner = AlignTo1024<T>
type Aligner = AlignTo1024<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
source§type Aligner = AlignTo128<T>
type Aligner = AlignTo128<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
source§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
source§type Aligner = AlignTo16384<T>
type Aligner = AlignTo16384<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
source§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
source§type Aligner = AlignTo2048<T>
type Aligner = AlignTo2048<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
source§type Aligner = AlignTo256<T>
type Aligner = AlignTo256<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
source§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
source§type Aligner = AlignTo32768<T>
type Aligner = AlignTo32768<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
source§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
source§type Aligner = AlignTo4096<T>
type Aligner = AlignTo4096<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
source§type Aligner = AlignTo512<T>
type Aligner = AlignTo512<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
source§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
source§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
source§type Aligner = AlignTo8192<T>
type Aligner = AlignTo8192<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<This> ForExtraChecksImplementor for This
impl<This> ForExtraChecksImplementor for This
source§fn downcast_with_layout<F, R, E>(
layout_containing_other: &'static TypeLayout,
checker: TypeCheckerMut<'_>,
f: F,
) -> RResult<R, ExtraChecksError>where
Self: 'static,
F: FnOnce(&Self, TypeCheckerMut<'_>) -> Result<R, E>,
E: Send + Sync + ErrorTrait + 'static,
fn downcast_with_layout<F, R, E>(
layout_containing_other: &'static TypeLayout,
checker: TypeCheckerMut<'_>,
f: F,
) -> RResult<R, ExtraChecksError>where
Self: 'static,
F: FnOnce(&Self, TypeCheckerMut<'_>) -> Result<R, E>,
E: Send + Sync + ErrorTrait + 'static,
source§fn downcast_with_object<F, R, E>(
other: ExtraChecksRef<'_>,
checker: TypeCheckerMut<'_>,
f: F,
) -> RResult<R, ExtraChecksError>
fn downcast_with_object<F, R, E>( other: ExtraChecksRef<'_>, checker: TypeCheckerMut<'_>, f: F, ) -> RResult<R, ExtraChecksError>
source§impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
impl<'a, T> RCowCompatibleRef<'a> for Twhere
T: Clone + 'a,
source§fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
fn as_c_ref(from: &'a T) -> <T as RCowCompatibleRef<'a>>::RefC
source§fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
fn as_rust_ref(from: <T as RCowCompatibleRef<'a>>::RefC) -> &'a T
source§impl<S> ROExtAcc for S
impl<S> ROExtAcc for S
source§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset
. Read moresource§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset
. Read moresource§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset
. Read moresource§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset
. Read moresource§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moresource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
source§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moresource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
source§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
source§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
source§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
piped
except that the function takes &Self
Useful for functions that take &Self
instead of Self
. Read moresource§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
piped
, except that the function takes &mut Self
.
Useful for functions that take &mut Self
instead of Self
.source§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
source§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
source§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
AsRef
,
using the turbofish .as_ref_::<_>()
syntax. Read more