pub enum Definition<'db> {
Show 24 variants
Macro(Macro),
Field(Field),
TupleField(TupleField<'db>),
Module(Module),
Crate(Crate),
Function(Function),
Adt(Adt),
EnumVariant(EnumVariant),
Const(Const),
Static(Static),
Trait(Trait),
TypeAlias(TypeAlias),
SelfType(Impl),
GenericParam(GenericParam),
Local(Local<'db>),
Label(Label),
DeriveHelper(DeriveHelper),
BuiltinType(BuiltinType),
BuiltinLifetime(StaticLifetime),
BuiltinAttr(BuiltinAttr),
ToolModule(ToolModule),
ExternCrateDecl(ExternCrateDecl),
InlineAsmRegOrRegClass(()),
InlineAsmOperand(InlineAsmOperand),
}Variants§
Macro(Macro)
Field(Field)
TupleField(TupleField<'db>)
Module(Module)
Crate(Crate)
Function(Function)
Adt(Adt)
EnumVariant(EnumVariant)
Const(Const)
Static(Static)
Trait(Trait)
TypeAlias(TypeAlias)
SelfType(Impl)
GenericParam(GenericParam)
Local(Local<'db>)
Label(Label)
DeriveHelper(DeriveHelper)
BuiltinType(BuiltinType)
BuiltinLifetime(StaticLifetime)
BuiltinAttr(BuiltinAttr)
ToolModule(ToolModule)
ExternCrateDecl(ExternCrateDecl)
InlineAsmRegOrRegClass(())
InlineAsmOperand(InlineAsmOperand)
Implementations§
Source§impl<'db> Definition<'db>
impl<'db> Definition<'db>
pub fn canonical_module_path( &self, db: &RootDatabase, ) -> Option<impl Iterator<Item = Module>>
pub fn krate(&self, db: &RootDatabase) -> Option<Crate>
Sourcepub fn module(&self, db: &RootDatabase) -> Option<Module>
pub fn module(&self, db: &RootDatabase) -> Option<Module>
Returns the module this definition resides in.
As such, for modules themselves this will return the parent module.
pub fn enclosing_definition(&self, db: &RootDatabase) -> Option<Definition<'db>>
pub fn visibility(&self, db: &RootDatabase) -> Option<Visibility>
pub fn name(&self, db: &RootDatabase) -> Option<Name>
pub fn docs<'a>( &self, db: &'a RootDatabase, famous_defs: Option<&FamousDefs<'_, '_>>, display_target: DisplayTarget, ) -> Option<Documentation<'a>>
pub fn docs_with_rangemap<'a>( &self, db: &'a RootDatabase, famous_defs: Option<&FamousDefs<'_, '_>>, display_target: DisplayTarget, ) -> Option<Either<Cow<'a, Docs>, Documentation<'a>>>
pub fn label(&self, db: &RootDatabase, display_target: DisplayTarget) -> String
Source§impl<'db> Definition<'db>
impl<'db> Definition<'db>
pub fn rename( &self, sema: &Semantics<'db, RootDatabase>, new_name: &str, rename_definition: RenameDefinition, config: &RenameConfig, ) -> Result<SourceChange>
Sourcepub fn range_for_rename(
self,
sema: &Semantics<'_, RootDatabase>,
) -> Option<FileRange>
pub fn range_for_rename( self, sema: &Semantics<'_, RootDatabase>, ) -> Option<FileRange>
Textual range of the identifier which will change when renaming this
Definition. Note that builtin types can’t be
renamed and extern crate names will report its range, though a rename will introduce
an alias instead.
Source§impl<'db> Definition<'db>
impl<'db> Definition<'db>
fn search_scope(&self, db: &RootDatabase) -> SearchScope
pub fn usages<'a>( self, sema: &'a Semantics<'db, RootDatabase>, ) -> FindUsages<'a, 'db>
Trait Implementations§
Source§impl AsAssocItem for Definition<'_>
impl AsAssocItem for Definition<'_>
fn as_assoc_item(self, db: &dyn HirDatabase) -> Option<AssocItem>
Source§impl AsExternAssocItem for Definition<'_>
impl AsExternAssocItem for Definition<'_>
fn as_extern_assoc_item(self, db: &dyn HirDatabase) -> Option<ExternAssocItem>
Source§impl<'db> Clone for Definition<'db>
impl<'db> Clone for Definition<'db>
Source§fn clone(&self) -> Definition<'db>
fn clone(&self) -> Definition<'db>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'db> Debug for Definition<'db>
impl<'db> Debug for Definition<'db>
Source§impl<'db> From<Adt> for Definition<'db>
impl<'db> From<Adt> for Definition<'db>
Source§fn from(it: Adt) -> Definition<'db>
fn from(it: Adt) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<AssocItem> for Definition<'db>
impl<'db> From<AssocItem> for Definition<'db>
Source§impl<'db> From<BuiltinType> for Definition<'db>
impl<'db> From<BuiltinType> for Definition<'db>
Source§fn from(it: BuiltinType) -> Definition<'db>
fn from(it: BuiltinType) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Const> for Definition<'db>
impl<'db> From<Const> for Definition<'db>
Source§fn from(it: Const) -> Definition<'db>
fn from(it: Const) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<DocLinkDef> for Definition<'db>
impl<'db> From<DocLinkDef> for Definition<'db>
Source§fn from(def: DocLinkDef) -> Self
fn from(def: DocLinkDef) -> Self
Converts to this type from the input type.
Source§impl<'db> From<Either<PathResolution<'db>, InlineAsmOperand>> for Definition<'db>
impl<'db> From<Either<PathResolution<'db>, InlineAsmOperand>> for Definition<'db>
Source§fn from(value: Either<PathResolution<'db>, InlineAsmOperand>) -> Self
fn from(value: Either<PathResolution<'db>, InlineAsmOperand>) -> Self
Converts to this type from the input type.
Source§impl<'db> From<EnumVariant> for Definition<'db>
impl<'db> From<EnumVariant> for Definition<'db>
Source§fn from(it: EnumVariant) -> Definition<'db>
fn from(it: EnumVariant) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<ExternCrateDecl> for Definition<'db>
impl<'db> From<ExternCrateDecl> for Definition<'db>
Source§fn from(it: ExternCrateDecl) -> Definition<'db>
fn from(it: ExternCrateDecl) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Field> for Definition<'db>
impl<'db> From<Field> for Definition<'db>
Source§fn from(it: Field) -> Definition<'db>
fn from(it: Field) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Function> for Definition<'db>
impl<'db> From<Function> for Definition<'db>
Source§fn from(it: Function) -> Definition<'db>
fn from(it: Function) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<GenericDef> for Definition<'db>
impl<'db> From<GenericDef> for Definition<'db>
Source§fn from(def: GenericDef) -> Self
fn from(def: GenericDef) -> Self
Converts to this type from the input type.
Source§impl<'db> From<GenericParam> for Definition<'db>
impl<'db> From<GenericParam> for Definition<'db>
Source§fn from(it: GenericParam) -> Definition<'db>
fn from(it: GenericParam) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Impl> for Definition<'db>
impl<'db> From<Impl> for Definition<'db>
Source§impl<'db> From<InlineAsmOperand> for Definition<'db>
impl<'db> From<InlineAsmOperand> for Definition<'db>
Source§fn from(it: InlineAsmOperand) -> Definition<'db>
fn from(it: InlineAsmOperand) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Label> for Definition<'db>
impl<'db> From<Label> for Definition<'db>
Source§fn from(it: Label) -> Definition<'db>
fn from(it: Label) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Local<'db>> for Definition<'db>
impl<'db> From<Local<'db>> for Definition<'db>
Source§fn from(it: Local<'db>) -> Definition<'db>
fn from(it: Local<'db>) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Macro> for Definition<'db>
impl<'db> From<Macro> for Definition<'db>
Source§fn from(it: Macro) -> Definition<'db>
fn from(it: Macro) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Module> for Definition<'db>
impl<'db> From<Module> for Definition<'db>
Source§fn from(it: Module) -> Definition<'db>
fn from(it: Module) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<ModuleDef> for Definition<'db>
impl<'db> From<ModuleDef> for Definition<'db>
Source§impl<'db> From<PathResolution<'db>> for Definition<'db>
impl<'db> From<PathResolution<'db>> for Definition<'db>
Source§fn from(path_resolution: PathResolution<'db>) -> Self
fn from(path_resolution: PathResolution<'db>) -> Self
Converts to this type from the input type.
Source§impl<'db> From<Static> for Definition<'db>
impl<'db> From<Static> for Definition<'db>
Source§fn from(it: Static) -> Definition<'db>
fn from(it: Static) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Trait> for Definition<'db>
impl<'db> From<Trait> for Definition<'db>
Source§fn from(it: Trait) -> Definition<'db>
fn from(it: Trait) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<TupleField<'db>> for Definition<'db>
impl<'db> From<TupleField<'db>> for Definition<'db>
Source§fn from(it: TupleField<'db>) -> Definition<'db>
fn from(it: TupleField<'db>) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<TypeAlias> for Definition<'db>
impl<'db> From<TypeAlias> for Definition<'db>
Source§fn from(it: TypeAlias) -> Definition<'db>
fn from(it: TypeAlias) -> Definition<'db>
Converts to this type from the input type.
Source§impl<'db> From<Variant> for Definition<'db>
impl<'db> From<Variant> for Definition<'db>
Source§impl<'db> Hash for Definition<'db>
impl<'db> Hash for Definition<'db>
Source§impl<'db> PartialEq for Definition<'db>
impl<'db> PartialEq for Definition<'db>
Source§fn eq(&self, other: &Definition<'db>) -> bool
fn eq(&self, other: &Definition<'db>) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl<'db> TryFrom<DefWithBody> for Definition<'db>
impl<'db> TryFrom<DefWithBody> for Definition<'db>
Source§impl TryFrom<Definition<'_>> for GenericDef
impl TryFrom<Definition<'_>> for GenericDef
Source§impl<'db> TryFrom<ExpressionStoreOwner> for Definition<'db>
impl<'db> TryFrom<ExpressionStoreOwner> for Definition<'db>
impl<'db> Copy for Definition<'db>
impl<'db> Eq for Definition<'db>
impl<'db> StructuralPartialEq for Definition<'db>
Auto Trait Implementations§
impl<'db> Freeze for Definition<'db>
impl<'db> RefUnwindSafe for Definition<'db>
impl<'db> Send for Definition<'db>
impl<'db> Sync for Definition<'db>
impl<'db> Unpin for Definition<'db>
impl<'db> UnsafeUnpin for Definition<'db>
impl<'db> UnwindSafe for Definition<'db>
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
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<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> HashEqLike<T> for T
impl<T> HashEqLike<T> for T
§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