pub struct Module { /* private fields */ }
Implementations
sourceimpl Module
impl Module
NB: Module is !HasSource, because it has two source nodes at the same time: definition and declaration.
sourcepub fn definition_source(self, db: &dyn HirDatabase) -> InFile<ModuleSource>
pub fn definition_source(self, db: &dyn HirDatabase) -> InFile<ModuleSource>
Returns a node which defines this module. That is, a file or a mod foo {}
with items.
pub fn is_mod_rs(self, db: &dyn HirDatabase) -> bool
sourcepub fn declaration_source(self, db: &dyn HirDatabase) -> Option<InFile<Module>>
pub fn declaration_source(self, db: &dyn HirDatabase) -> Option<InFile<Module>>
Returns a node which declares this module, either a mod foo;
or a mod foo {}
.
None
for the crate root.
sourceimpl Module
impl Module
sourcepub fn name(self, db: &dyn HirDatabase) -> Option<Name>
pub fn name(self, db: &dyn HirDatabase) -> Option<Name>
Name of this module.
sourcepub fn crate_root(self, db: &dyn HirDatabase) -> Module
pub fn crate_root(self, db: &dyn HirDatabase) -> Module
Topmost parent of this module. Every module has a crate_root
, but some
might be missing krate
. This can happen if a module’s file is not included
in the module tree of any target in Cargo.toml
.
pub fn is_crate_root(self, db: &dyn HirDatabase) -> bool
sourcepub fn children(self, db: &dyn HirDatabase) -> impl Iterator<Item = Module>
pub fn children(self, db: &dyn HirDatabase) -> impl Iterator<Item = Module>
Iterates over all child modules.
sourcepub fn parent(self, db: &dyn HirDatabase) -> Option<Module>
pub fn parent(self, db: &dyn HirDatabase) -> Option<Module>
Finds a parent module.
pub fn path_to_root(self, db: &dyn HirDatabase) -> Vec<Module>
sourcepub fn scope(
self,
db: &dyn HirDatabase,
visible_from: Option<Module>
) -> Vec<(Name, ScopeDef)>
pub fn scope(
self,
db: &dyn HirDatabase,
visible_from: Option<Module>
) -> Vec<(Name, ScopeDef)>
Returns a ModuleScope
: a set of items, visible in this module.
pub fn diagnostics(self, db: &dyn HirDatabase, acc: &mut Vec<AnyDiagnostic>)
pub fn declarations(self, db: &dyn HirDatabase) -> Vec<ModuleDef>
pub fn legacy_macros(self, db: &dyn HirDatabase) -> Vec<Macro>
pub fn impl_defs(self, db: &dyn HirDatabase) -> Vec<Impl>
sourcepub fn find_use_path(
self,
db: &dyn DefDatabase,
item: impl Into<ItemInNs>
) -> Option<ModPath>
pub fn find_use_path(
self,
db: &dyn DefDatabase,
item: impl Into<ItemInNs>
) -> Option<ModPath>
Finds a path that can be used to refer to the given item from within this module, if possible.
sourcepub fn find_use_path_prefixed(
self,
db: &dyn DefDatabase,
item: impl Into<ItemInNs>,
prefix_kind: PrefixKind
) -> Option<ModPath>
pub fn find_use_path_prefixed(
self,
db: &dyn DefDatabase,
item: impl Into<ItemInNs>,
prefix_kind: PrefixKind
) -> Option<ModPath>
Finds a path that can be used to refer to the given item from within this module, if possible. This is used for returning import paths for use-statements.
Trait Implementations
sourceimpl HasAttrs for Module
impl HasAttrs for Module
fn attrs(self, db: &dyn HirDatabase) -> AttrsWithOwner
fn docs(self, db: &dyn HirDatabase) -> Option<Documentation>
fn resolve_doc_path(
self,
db: &dyn HirDatabase,
link: &str,
ns: Option<Namespace>
) -> Option<ModuleDef>
sourceimpl HasVisibility for Module
impl HasVisibility for Module
fn visibility(&self, db: &dyn HirDatabase) -> Visibility
fn is_visible_from(&self, db: &dyn HirDatabase, module: Module) -> bool
sourceimpl HirDisplay for Module
impl HirDisplay for Module
fn hir_fmt(&self, f: &mut HirFormatter<'_>) -> Result<(), HirDisplayError>
sourcefn into_displayable(
&'a self,
db: &'a (dyn HirDatabase + 'a),
max_size: Option<usize>,
omit_verbose_types: bool,
display_target: DisplayTarget
) -> HirDisplayWrapper<'a, Self>
fn into_displayable(
&'a self,
db: &'a (dyn HirDatabase + 'a),
max_size: Option<usize>,
omit_verbose_types: bool,
display_target: DisplayTarget
) -> HirDisplayWrapper<'a, Self>
Returns a Display
able type that is human-readable.
sourcefn display(
&'a self,
db: &'a (dyn HirDatabase + 'a)
) -> HirDisplayWrapper<'a, Self>
fn display(
&'a self,
db: &'a (dyn HirDatabase + 'a)
) -> HirDisplayWrapper<'a, Self>
Returns a Display
able type that is human-readable.
Use this for showing types to the user (e.g. diagnostics) Read more
sourcefn display_truncated(
&'a self,
db: &'a (dyn HirDatabase + 'a),
max_size: Option<usize>
) -> HirDisplayWrapper<'a, Self>
fn display_truncated(
&'a self,
db: &'a (dyn HirDatabase + 'a),
max_size: Option<usize>
) -> HirDisplayWrapper<'a, Self>
Returns a Display
able type that is human-readable and tries to be succinct.
Use this for showing types to the user where space is constrained (e.g. doc popups) Read more
sourcefn display_source_code(
&'a self,
db: &'a (dyn HirDatabase + 'a),
module_id: ModuleId
) -> Result<String, DisplaySourceCodeError>
fn display_source_code(
&'a self,
db: &'a (dyn HirDatabase + 'a),
module_id: ModuleId
) -> Result<String, DisplaySourceCodeError>
Returns a String representation of self
that can be inserted into the given module.
Use this when generating code (e.g. assists) Read more
sourcefn display_test(
&'a self,
db: &'a (dyn HirDatabase + 'a)
) -> HirDisplayWrapper<'a, Self>
fn display_test(
&'a self,
db: &'a (dyn HirDatabase + 'a)
) -> HirDisplayWrapper<'a, Self>
Returns a String representation of self
for test purposes
impl Copy for Module
impl Eq for Module
impl StructuralEq for Module
impl StructuralPartialEq for Module
Auto Trait Implementations
impl RefUnwindSafe for Module
impl Send for Module
impl Sync for Module
impl Unpin for Module
impl UnwindSafe for Module
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> Cast for T
impl<T> Cast for T
fn cast<U>(self, interner: <U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner,
fn cast<U>(self, interner: <U as HasInterner>::Interner) -> U where
Self: CastTo<U>,
U: HasInterner,
Cast a value to type U
using CastTo
.
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more