[−][src]Struct rustc_middle::ty::List
A wrapper for slices with the additional invariant that the slice is interned and no other slice with the same contents can exist in the same context. This means we can use pointer for both equality comparisons and hashing.
Unlike slices, The types contained in List are expected to be Copy
and iterating over a List returns T instead of a reference.
Note: Slice was already taken by the Ty.
Fields
len: usizedata: [T; 0]opaque: OpaqueListContentsImplementations
impl<'a, 'tcx> List<GenericArg<'tcx>>[src]
pub fn as_closure(&'a self) -> ClosureSubsts<'a>[src]
Interpret these substitutions as the substitutions of a closure type.
Closure substitutions have a particular structure controlled by the
compiler that encodes information like the signature and closure kind;
see ty::ClosureSubsts struct for more comments.
pub fn as_generator(&'tcx self) -> GeneratorSubsts<'tcx>[src]
Interpret these substitutions as the substitutions of a generator type.
Closure substitutions have a particular structure controlled by the
compiler that encodes information like the signature and generator kind;
see ty::GeneratorSubsts struct for more comments.
pub fn identity_for_item(tcx: TyCtxt<'tcx>, def_id: DefId) -> SubstsRef<'tcx>[src]
Creates a InternalSubsts that maps each generic parameter to itself.
pub fn for_item<F>(
tcx: TyCtxt<'tcx>,
def_id: DefId,
mk_kind: F
) -> SubstsRef<'tcx> where
F: FnMut(&GenericParamDef, &[GenericArg<'tcx>]) -> GenericArg<'tcx>, [src]
tcx: TyCtxt<'tcx>,
def_id: DefId,
mk_kind: F
) -> SubstsRef<'tcx> where
F: FnMut(&GenericParamDef, &[GenericArg<'tcx>]) -> GenericArg<'tcx>,
Creates a InternalSubsts for generic parameter definitions,
by calling closures to obtain each kind.
The closures get to observe the InternalSubsts as they're
being built, which can be used to correctly
substitute defaults of generic parameters.
pub fn extend_to<F>(
&self,
tcx: TyCtxt<'tcx>,
def_id: DefId,
mk_kind: F
) -> SubstsRef<'tcx> where
F: FnMut(&GenericParamDef, &[GenericArg<'tcx>]) -> GenericArg<'tcx>, [src]
&self,
tcx: TyCtxt<'tcx>,
def_id: DefId,
mk_kind: F
) -> SubstsRef<'tcx> where
F: FnMut(&GenericParamDef, &[GenericArg<'tcx>]) -> GenericArg<'tcx>,
pub(in ty::subst) fn fill_item<F>(
substs: &mut SmallVec<[GenericArg<'tcx>; 8]>,
tcx: TyCtxt<'tcx>,
defs: &Generics,
mk_kind: &mut F
) where
F: FnMut(&GenericParamDef, &[GenericArg<'tcx>]) -> GenericArg<'tcx>, [src]
substs: &mut SmallVec<[GenericArg<'tcx>; 8]>,
tcx: TyCtxt<'tcx>,
defs: &Generics,
mk_kind: &mut F
) where
F: FnMut(&GenericParamDef, &[GenericArg<'tcx>]) -> GenericArg<'tcx>,
pub(in ty::subst) fn fill_single<F>(
substs: &mut SmallVec<[GenericArg<'tcx>; 8]>,
defs: &Generics,
mk_kind: &mut F
) where
F: FnMut(&GenericParamDef, &[GenericArg<'tcx>]) -> GenericArg<'tcx>, [src]
substs: &mut SmallVec<[GenericArg<'tcx>; 8]>,
defs: &Generics,
mk_kind: &mut F
) where
F: FnMut(&GenericParamDef, &[GenericArg<'tcx>]) -> GenericArg<'tcx>,
pub fn is_noop(&self) -> bool[src]
pub fn types(&'a self) -> impl DoubleEndedIterator<Item = Ty<'tcx>> + 'a[src]
pub fn regions(&'a self) -> impl DoubleEndedIterator<Item = Region<'tcx>> + 'a[src]
pub fn consts(
&'a self
) -> impl DoubleEndedIterator<Item = &'tcx Const<'tcx>> + 'a[src]
&'a self
) -> impl DoubleEndedIterator<Item = &'tcx Const<'tcx>> + 'a
pub fn non_erasable_generics(
&'a self
) -> impl DoubleEndedIterator<Item = GenericArgKind<'tcx>> + 'a[src]
&'a self
) -> impl DoubleEndedIterator<Item = GenericArgKind<'tcx>> + 'a
pub fn type_at(&self, i: usize) -> Ty<'tcx>[src]
pub fn region_at(&self, i: usize) -> Region<'tcx>[src]
pub fn const_at(&self, i: usize) -> &'tcx Const<'tcx>[src]
pub fn type_for_def(&self, def: &GenericParamDef) -> GenericArg<'tcx>[src]
pub fn rebase_onto(
&self,
tcx: TyCtxt<'tcx>,
source_ancestor: DefId,
target_substs: SubstsRef<'tcx>
) -> SubstsRef<'tcx>[src]
&self,
tcx: TyCtxt<'tcx>,
source_ancestor: DefId,
target_substs: SubstsRef<'tcx>
) -> SubstsRef<'tcx>
Transform from substitutions for a child of source_ancestor
(e.g., a trait or impl) to substitutions for the same child
in a different item, with target_substs as the base for
the target impl/trait, with the source child-specific
parameters (e.g., method parameters) on top of that base.
For example given:
trait X<S> { fn f<T>(); } impl<U> X<U> for U { fn f<V>() {} }
- If
selfis[Self, S, T]: the identity substs offin the trait. - If
source_ancestoris the def_id of the trait. - If
target_substsis[U], the substs for the impl. - Then we will return
[U, T], the subst forfin the impl that are needed for it to match the trait.
pub fn truncate_to(
&self,
tcx: TyCtxt<'tcx>,
generics: &Generics
) -> SubstsRef<'tcx>[src]
&self,
tcx: TyCtxt<'tcx>,
generics: &Generics
) -> SubstsRef<'tcx>
impl<T: Copy> List<T>[src]
pub(in ty) fn from_arena<'tcx>(
arena: &'tcx Arena<'tcx>,
slice: &[T]
) -> &'tcx List<T>[src]
arena: &'tcx Arena<'tcx>,
slice: &[T]
) -> &'tcx List<T>
pub fn iter(&self) -> <&List<T> as IntoIterator>::IntoIter[src]
impl<T> List<T>[src]
impl<'tcx> List<ExistentialPredicate<'tcx>>[src]
pub fn principal(&self) -> Option<ExistentialTraitRef<'tcx>>[src]
Returns the "principal DefId" of this set of existential predicates.
A Rust trait object type consists (in addition to a lifetime bound) of a set of trait bounds, which are separated into any number of auto-trait bounds, and at most one non-auto-trait bound. The non-auto-trait bound is called the "principal" of the trait object.
Only the principal can have methods or type parameters (because auto traits can have neither of them). This is important, because it means the auto traits can be treated as an unordered set (methods would force an order for the vtable, while relating traits with type parameters without knowing the order to relate them in is a rather non-trivial task).
For example, in the trait object dyn fmt::Debug + Sync, the
principal bound is Some(fmt::Debug), while the auto-trait bounds
are the set {Sync}.
It is also possible to have a "trivial" trait object that
consists only of auto traits, with no principal - for example,
dyn Send + Sync. In that case, the set of auto-trait bounds
is {Send, Sync}, while there is no principal. These trait objects
have a "trivial" vtable consisting of just the size, alignment,
and destructor.
pub fn principal_def_id(&self) -> Option<DefId>[src]
pub fn projection_bounds<'a>(
&'a self
) -> impl Iterator<Item = ExistentialProjection<'tcx>> + 'a[src]
&'a self
) -> impl Iterator<Item = ExistentialProjection<'tcx>> + 'a
pub fn auto_traits<'a>(&'a self) -> impl Iterator<Item = DefId> + 'a[src]
Trait Implementations
impl<T> AsRef<[T]> for List<T>[src]
impl<T: Debug> Debug for List<T>[src]
impl<'tcx, D: TyDecoder<'tcx>> Decodable<D> for &'tcx List<Ty<'tcx>>[src]
impl<'tcx, D: TyDecoder<'tcx>> Decodable<D> for &'tcx List<ExistentialPredicate<'tcx>>[src]
impl<T> Deref for List<T>[src]
impl<'tcx> Display for &'tcx List<ExistentialPredicate<'tcx>>[src]
impl<'tcx> Display for &'tcx List<Ty<'tcx>>[src]
impl<S: Encoder, T: Encodable<S>> Encodable<S> for List<T>[src]
impl<S: Encoder, T: Encodable<S>, '_> Encodable<S> for &'_ List<T>[src]
impl<T: Eq> Eq for List<T>[src]
impl<T> Hash for List<T>[src]
pub fn hash<H: Hasher>(&self, s: &mut H)[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
H: Hasher,
impl<'a, 'tcx, T> HashStable<StableHashingContext<'a>> for &'tcx List<T> where
T: HashStable<StableHashingContext<'a>>, [src]
T: HashStable<StableHashingContext<'a>>,
pub fn hash_stable(
&self,
hcx: &mut StableHashingContext<'a>,
hasher: &mut StableHasher
)[src]
&self,
hcx: &mut StableHashingContext<'a>,
hasher: &mut StableHasher
)
impl<'a, T: Copy> IntoIterator for &'a List<T>[src]
type Item = T
The type of the elements being iterated over.
type IntoIter = Copied<<&'a [T] as IntoIterator>::IntoIter>
Which kind of iterator are we turning this into?
pub fn into_iter(self) -> Self::IntoIter[src]
impl<'tcx> Key for &'tcx List<Predicate<'tcx>>[src]
type CacheSelector = DefaultCacheSelector
pub fn query_crate(&self) -> CrateNum[src]
pub fn default_span(&self, _: TyCtxt<'_>) -> Span[src]
impl<'a, 'tcx> Lift<'tcx> for &'a List<Ty<'a>>[src]
type Lifted = &'tcx List<Ty<'tcx>>
pub fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted>[src]
impl<'a, 'tcx> Lift<'tcx> for &'a List<ExistentialPredicate<'a>>[src]
type Lifted = &'tcx List<ExistentialPredicate<'tcx>>
pub fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted>[src]
impl<'a, 'tcx> Lift<'tcx> for &'a List<Predicate<'a>>[src]
type Lifted = &'tcx List<Predicate<'tcx>>
pub fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted>[src]
impl<'a, 'tcx> Lift<'tcx> for &'a List<CanonicalVarInfo<'a>>[src]
type Lifted = &'tcx List<CanonicalVarInfo<'tcx>>
pub fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted>[src]
impl<'a, 'tcx> Lift<'tcx> for &'a List<ProjectionKind>[src]
type Lifted = &'tcx List<ProjectionKind>
pub fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted>[src]
impl<'a, 'tcx> Lift<'tcx> for &'a List<GenericArg<'a>>[src]
type Lifted = &'tcx List<GenericArg<'tcx>>
pub fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<Self::Lifted>[src]
impl<T> Ord for List<T> where
T: Ord, [src]
T: Ord,
pub fn cmp(&self, other: &List<T>) -> Ordering[src]
#[must_use]pub fn max(self, other: Self) -> Self1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self[src]
impl<T: PartialEq> PartialEq<List<T>> for List<T>[src]
pub fn eq(&self, other: &List<T>) -> bool[src]
#[must_use]pub fn ne(&self, other: &Rhs) -> bool1.0.0[src]
impl<T> PartialOrd<List<T>> for List<T> where
T: PartialOrd, [src]
T: PartialOrd,
pub fn partial_cmp(&self, other: &List<T>) -> Option<Ordering>[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool1.0.0[src]
impl<'a, T: 'a> Pointer for &'a List<T>[src]
pub const BITS: usize[src]
pub fn into_usize(self) -> usize[src]
pub unsafe fn from_usize(ptr: usize) -> Self[src]
pub unsafe fn with_ref<R, F: FnOnce(&Self) -> R>(ptr: usize, f: F) -> R[src]
impl<'tcx, P: PrettyPrinter<'tcx>> Print<'tcx, P> for &'tcx List<Ty<'tcx>>[src]
type Output = P
type Error = Error
pub fn print(&self, cx: P) -> Result<Self::Output, Self::Error>[src]
impl<'tcx, P: Printer<'tcx>> Print<'tcx, P> for &'tcx List<ExistentialPredicate<'tcx>>[src]
type Output = P::DynExistential
type Error = P::Error
pub fn print(&self, cx: P) -> Result<Self::Output, Self::Error>[src]
impl<'tcx, D: TyDecoder<'tcx>> RefDecodable<'tcx, D> for List<Ty<'tcx>>[src]
impl<'tcx, D: TyDecoder<'tcx>> RefDecodable<'tcx, D> for List<ExistentialPredicate<'tcx>>[src]
impl<'tcx> Relate<'tcx> for &'tcx List<ExistentialPredicate<'tcx>>[src]
pub fn relate<R: TypeRelation<'tcx>>(
relation: &mut R,
a: Self,
b: Self
) -> RelateResult<'tcx, Self>[src]
relation: &mut R,
a: Self,
b: Self
) -> RelateResult<'tcx, Self>
impl<T: Sync> Sync for List<T>[src]
impl<'a, 'tcx, T> ToStableHashKey<StableHashingContext<'a>> for &'tcx List<T> where
T: HashStable<StableHashingContext<'a>>, [src]
T: HashStable<StableHashingContext<'a>>,
type KeyType = Fingerprint
pub fn to_stable_hash_key(&self, hcx: &StableHashingContext<'a>) -> Fingerprint[src]
impl<'tcx> TypeFoldable<'tcx> for &'tcx List<PlaceElem<'tcx>>[src]
pub fn super_fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn super_visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn has_vars_bound_at_or_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_vars_bound_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_escaping_bound_vars(&self) -> bool[src]
pub fn has_type_flags(&self, flags: TypeFlags) -> bool[src]
pub fn has_projections(&self) -> bool[src]
pub fn has_opaque_types(&self) -> bool[src]
pub fn references_error(&self) -> bool[src]
pub fn has_param_types_or_consts(&self) -> bool[src]
pub fn has_infer_regions(&self) -> bool[src]
pub fn has_infer_types(&self) -> bool[src]
pub fn has_infer_types_or_consts(&self) -> bool[src]
pub fn needs_infer(&self) -> bool[src]
pub fn has_placeholders(&self) -> bool[src]
pub fn needs_subst(&self) -> bool[src]
pub fn has_free_regions(&self) -> bool[src]
pub fn has_erased_regions(&self) -> bool[src]
pub fn has_erasable_regions(&self) -> bool[src]
pub fn is_global(&self) -> bool[src]
pub fn has_late_bound_regions(&self) -> bool[src]
pub fn still_further_specializable(&self) -> bool[src]
impl<'tcx> TypeFoldable<'tcx> for &'tcx List<ExistentialPredicate<'tcx>>[src]
pub fn super_fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn super_visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn has_vars_bound_at_or_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_vars_bound_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_escaping_bound_vars(&self) -> bool[src]
pub fn has_type_flags(&self, flags: TypeFlags) -> bool[src]
pub fn has_projections(&self) -> bool[src]
pub fn has_opaque_types(&self) -> bool[src]
pub fn references_error(&self) -> bool[src]
pub fn has_param_types_or_consts(&self) -> bool[src]
pub fn has_infer_regions(&self) -> bool[src]
pub fn has_infer_types(&self) -> bool[src]
pub fn has_infer_types_or_consts(&self) -> bool[src]
pub fn needs_infer(&self) -> bool[src]
pub fn has_placeholders(&self) -> bool[src]
pub fn needs_subst(&self) -> bool[src]
pub fn has_free_regions(&self) -> bool[src]
pub fn has_erased_regions(&self) -> bool[src]
pub fn has_erasable_regions(&self) -> bool[src]
pub fn is_global(&self) -> bool[src]
pub fn has_late_bound_regions(&self) -> bool[src]
pub fn still_further_specializable(&self) -> bool[src]
impl<'tcx> TypeFoldable<'tcx> for &'tcx List<Ty<'tcx>>[src]
pub fn super_fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn super_visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn has_vars_bound_at_or_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_vars_bound_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_escaping_bound_vars(&self) -> bool[src]
pub fn has_type_flags(&self, flags: TypeFlags) -> bool[src]
pub fn has_projections(&self) -> bool[src]
pub fn has_opaque_types(&self) -> bool[src]
pub fn references_error(&self) -> bool[src]
pub fn has_param_types_or_consts(&self) -> bool[src]
pub fn has_infer_regions(&self) -> bool[src]
pub fn has_infer_types(&self) -> bool[src]
pub fn has_infer_types_or_consts(&self) -> bool[src]
pub fn needs_infer(&self) -> bool[src]
pub fn has_placeholders(&self) -> bool[src]
pub fn needs_subst(&self) -> bool[src]
pub fn has_free_regions(&self) -> bool[src]
pub fn has_erased_regions(&self) -> bool[src]
pub fn has_erasable_regions(&self) -> bool[src]
pub fn is_global(&self) -> bool[src]
pub fn has_late_bound_regions(&self) -> bool[src]
pub fn still_further_specializable(&self) -> bool[src]
impl<'tcx> TypeFoldable<'tcx> for &'tcx List<ProjectionKind>[src]
pub fn super_fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn super_visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn has_vars_bound_at_or_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_vars_bound_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_escaping_bound_vars(&self) -> bool[src]
pub fn has_type_flags(&self, flags: TypeFlags) -> bool[src]
pub fn has_projections(&self) -> bool[src]
pub fn has_opaque_types(&self) -> bool[src]
pub fn references_error(&self) -> bool[src]
pub fn has_param_types_or_consts(&self) -> bool[src]
pub fn has_infer_regions(&self) -> bool[src]
pub fn has_infer_types(&self) -> bool[src]
pub fn has_infer_types_or_consts(&self) -> bool[src]
pub fn needs_infer(&self) -> bool[src]
pub fn has_placeholders(&self) -> bool[src]
pub fn needs_subst(&self) -> bool[src]
pub fn has_free_regions(&self) -> bool[src]
pub fn has_erased_regions(&self) -> bool[src]
pub fn has_erasable_regions(&self) -> bool[src]
pub fn is_global(&self) -> bool[src]
pub fn has_late_bound_regions(&self) -> bool[src]
pub fn still_further_specializable(&self) -> bool[src]
impl<'tcx> TypeFoldable<'tcx> for &'tcx List<Predicate<'tcx>>[src]
pub fn super_fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn super_visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn fold_with<F: TypeFolder<'tcx>>(self, folder: &mut F) -> Self[src]
pub fn visit_with<V: TypeVisitor<'tcx>>(
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>[src]
&self,
visitor: &mut V
) -> ControlFlow<V::BreakTy>
pub fn has_vars_bound_at_or_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_vars_bound_above(&self, binder: DebruijnIndex) -> bool[src]
pub fn has_escaping_bound_vars(&self) -> bool[src]
pub fn has_type_flags(&self, flags: TypeFlags) -> bool[src]
pub fn has_projections(&self) -> bool[src]
pub fn has_opaque_types(&self) -> bool[src]
pub fn references_error(&self) -> bool[src]
pub fn has_param_types_or_consts(&self) -> bool[src]
pub fn has_infer_regions(&self) -> bool[src]
pub fn has_infer_types(&self) -> bool[src]
pub fn has_infer_types_or_consts(&self) -> bool[src]
pub fn needs_infer(&self) -> bool[src]
pub fn has_placeholders(&self) -> bool[src]
pub fn needs_subst(&self) -> bool[src]
pub fn has_free_regions(&self) -> bool[src]
pub fn has_erased_regions(&self) -> bool[src]
pub fn has_erasable_regions(&self) -> bool[src]
pub fn is_global(&self) -> bool[src]
pub fn has_late_bound_regions(&self) -> bool[src]
pub fn still_further_specializable(&self) -> bool[src]
Auto Trait Implementations
impl<T> !RefUnwindSafe for List<T>
impl<T> !Send for List<T>
impl<T> !Unpin for List<T>
impl<T> !UnwindSafe for List<T>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> MaybeResult<T> for T[src]
type Error = !
pub fn from(Result<T, <T as MaybeResult<T>>::Error>) -> T[src]
pub fn to_result(self) -> Result<T, <T as MaybeResult<T>>::Error>[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.