#[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 SelfSource§impl StableAbi for RequiredTraits
impl StableAbi for RequiredTraits
Source§const LAYOUT: &'static TypeLayout
const LAYOUT: &'static TypeLayout
Source§type IsNonZeroType = False
type IsNonZeroType = False
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§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<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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