pub struct Impl { /* private fields */ }Implementations§
Source§impl Impl
impl Impl
pub fn all_in_crate(db: &dyn HirDatabase, krate: Crate) -> Vec<Impl>
pub fn all_in_module(db: &dyn HirDatabase, module: Module) -> Vec<Impl>
Sourcepub fn all_for_type<'db>(db: &'db dyn HirDatabase, _: Type<'db>) -> Vec<Impl>
pub fn all_for_type<'db>(db: &'db dyn HirDatabase, _: Type<'db>) -> Vec<Impl>
Note: This is an approximation that strives to give the human-perceived notion of an “impl for type”,
not answer the technical question “what are all impls applying to this type”. In particular, it excludes
blanket impls, and only does a shallow type constructor check. In fact, this should’ve probably been on Adt
etc., and not on Type. If you would want to create a precise list of all impls applying to a type,
you would need to include blanket impls, and try to prove to predicates for each candidate.
pub fn all_for_trait(db: &dyn HirDatabase, trait_: Trait) -> Vec<Impl>
pub fn trait_(self, db: &dyn HirDatabase) -> Option<Trait>
pub fn trait_ref(self, db: &dyn HirDatabase) -> Option<TraitRef<'_>>
pub fn self_ty(self, db: &dyn HirDatabase) -> Type<'_>
pub fn items(self, db: &dyn HirDatabase) -> Vec<AssocItem>
pub fn is_negative(self, db: &dyn HirDatabase) -> bool
pub fn is_unsafe(self, db: &dyn HirDatabase) -> bool
pub fn module(self, db: &dyn HirDatabase) -> Module
pub fn as_builtin_derive_path( self, db: &dyn HirDatabase, ) -> Option<InMacroFile<Path>>
pub fn check_orphan_rules(self, db: &dyn HirDatabase) -> bool
Trait Implementations§
Source§impl From<Impl> for GenericDef
impl From<Impl> for GenericDef
Source§fn from(it: Impl) -> GenericDef
fn from(it: Impl) -> GenericDef
Converts to this type from the input type.
Source§impl HasAttrs for Impl
impl HasAttrs for Impl
fn attrs(self, db: &dyn HirDatabase) -> AttrsWithOwner
fn hir_docs(self, db: &dyn HirDatabase) -> Option<&Docs>
Source§impl HasSource for Impl
impl HasSource for Impl
type Ast = Impl
Source§fn source(self, db: &dyn HirDatabase) -> Option<InFile<Self::Ast>>
fn source(self, db: &dyn HirDatabase) -> Option<InFile<Self::Ast>>
Fetches the definition’s source node.
Using
crate::SemanticsImpl::source is preferred when working with crate::Semantics,
as that caches the parsed file in the semantics’ cache. Read moreimpl Copy for Impl
impl Eq for Impl
impl StructuralPartialEq for Impl
Auto Trait Implementations§
impl Freeze for Impl
impl RefUnwindSafe for Impl
impl Send for Impl
impl Sync for Impl
impl Unpin for Impl
impl UnwindSafe for Impl
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more