Enum rustc_middle::ty::trait_def::TraitSpecializationKind
source · [−]pub enum TraitSpecializationKind {
None,
Marker,
AlwaysApplicable,
}Expand description
Whether this trait is treated specially by the standard library specialization lint.
Variants
None
The default. Specializing on this trait is not allowed.
Marker
Specializing on this trait is allowed because it doesn’t have any
methods. For example Sized or FusedIterator.
Applies to traits with the rustc_unsafe_specialization_marker
attribute.
AlwaysApplicable
Specializing on this trait is allowed because all of the impls of this
trait are “always applicable”. Always applicable means that if
X<'x>: T<'y> for any lifetimes, then for<'a, 'b> X<'a>: T<'b>.
Applies to traits with the rustc_specialization_trait attribute.
Trait Implementations
sourceimpl Clone for TraitSpecializationKind
impl Clone for TraitSpecializationKind
sourcefn clone(&self) -> TraitSpecializationKind
fn clone(&self) -> TraitSpecializationKind
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for TraitSpecializationKind
impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for TraitSpecializationKind
sourceimpl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for TraitSpecializationKind
impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for TraitSpecializationKind
sourceimpl<'__ctx> HashStable<StableHashingContext<'__ctx>> for TraitSpecializationKind
impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for TraitSpecializationKind
fn hash_stable(
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)
impl Copy for TraitSpecializationKind
impl StructuralPartialEq for TraitSpecializationKind
Auto Trait Implementations
impl RefUnwindSafe for TraitSpecializationKind
impl Send for TraitSpecializationKind
impl Sync for TraitSpecializationKind
impl Unpin for TraitSpecializationKind
impl UnwindSafe for TraitSpecializationKind
Blanket Implementations
sourceimpl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for T where
T: Copy,
impl<'tcx, T> ArenaAllocatable<'tcx, IsCopy> for T where
T: Copy,
fn allocate_on<'a>(self, arena: &'a Arena<'tcx>) -> &'a mut Self
fn allocate_from_iter<'a>(
arena: &'a Arena<'tcx>,
iter: impl IntoIterator<Item = Self>
) -> &'a mut [Self]ⓘNotable traits for &'_ [u8]impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<'a, T> Captures<'a> for T where
T: ?Sized,
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
None: 0 bytesMarker: 0 bytesAlwaysApplicable: 0 bytes