Struct rustc_resolve::imports::Import
source · pub(crate) struct Import<'a> {Show 13 fields
pub kind: ImportKind<'a>,
pub id: NodeId,
pub root_id: NodeId,
pub use_span: Span,
pub use_span_with_attributes: Span,
pub has_attributes: bool,
pub span: Span,
pub root_span: Span,
pub parent_scope: ParentScope<'a>,
pub module_path: Vec<Segment>,
pub imported_module: Cell<Option<ModuleOrUniformRoot<'a>>>,
pub vis: Cell<Option<Visibility>>,
pub used: Cell<bool>,
}
Expand description
One import.
Fields
kind: ImportKind<'a>
id: NodeId
The ID of the extern crate
, UseTree
etc that imported this Import
.
In the case where the Import
was expanded from a “nested” use tree,
this id is the ID of the leaf tree. For example:
use foo::bar::{a, b}
If this is the import for foo::bar::a
, we would have the ID of the UseTree
for a
in this field.
root_id: NodeId
The id
of the “root” use-kind – this is always the same as
id
except in the case of “nested” use trees, in which case
it will be the id
of the root use tree. e.g., in the example
from id
, this would be the ID of the use foo::bar
UseTree
node.
use_span: Span
Span of the entire use statement.
use_span_with_attributes: Span
Span of the entire use statement with attributes.
has_attributes: bool
Did the use statement have any attributes?
span: Span
Span of this use tree.
root_span: Span
Span of the root use tree (see root_id
).
parent_scope: ParentScope<'a>
module_path: Vec<Segment>
imported_module: Cell<Option<ModuleOrUniformRoot<'a>>>
The resolution of module_path
.
vis: Cell<Option<Visibility>>
used: Cell<bool>
Implementations
Trait Implementations
Auto Trait Implementations
impl<'a> !RefUnwindSafe for Import<'a>
impl<'a> !Send for Import<'a>
impl<'a> !Sync for Import<'a>
impl<'a> Unpin for Import<'a>
impl<'a> !UnwindSafe for Import<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 240 bytes