Enum rustc_middle::ty::trait_def::TraitSpecializationKind [−][src]
pub enum TraitSpecializationKind {
None,
Marker,
AlwaysApplicable,
}Expand description
Whether this trait is treated specially by the standard library specialization lint.
Variants
Expand description
The default. Specializing on this trait is not allowed.
Expand description
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.
Expand description
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
impl Clone for TraitSpecializationKind[src]
impl Clone for TraitSpecializationKind[src]fn clone(&self) -> TraitSpecializationKind[src]
fn clone(&self) -> TraitSpecializationKind[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)1.0.0[src]Performs copy-assignment from source. Read more
impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for TraitSpecializationKind[src]
impl<'tcx, __D: TyDecoder<'tcx>> Decodable<__D> for TraitSpecializationKind[src]impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for TraitSpecializationKind[src]
impl<'tcx, __E: TyEncoder<'tcx>> Encodable<__E> for TraitSpecializationKind[src]impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for TraitSpecializationKind[src]
impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for TraitSpecializationKind[src]fn hash_stable(
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)[src]
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)
impl Copy for TraitSpecializationKind[src]
impl StructuralPartialEq for TraitSpecializationKind[src]
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
impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
T: Copy, [src]
impl<'tcx, T> ArenaAllocatable<'tcx, ()> for T where
T: Copy, [src]pub fn allocate_on(Self, &'a Arena<'tcx>) -> &'a mut T[src]
pub fn allocate_from_iter(
&'a Arena<'tcx>,
impl IntoIterator<Item = T>
) -> &'a mut [T]ⓘ[src]
&'a Arena<'tcx>,
impl IntoIterator<Item = T>
) -> &'a mut [T]ⓘ
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> MaybeResult<T> for T[src]
impl<T> MaybeResult<T> for T[src]impl<T> ToOwned for T where
T: Clone, [src]
impl<T> ToOwned for T where
T: Clone, [src]type Owned = T
type Owned = TThe resulting type after obtaining ownership.
pub fn to_owned(&self) -> T[src]
pub fn to_owned(&self) -> T[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)[src]
pub fn clone_into(&self, target: &mut T)[src]🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]
fn with_const(self) -> ConstnessAnd<Self>[src]
fn without_const(self) -> ConstnessAnd<Self>[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,