Enum rustc_resolve::imports::ImportKind
source · pub enum ImportKind<'a> {
Single {
source: Ident,
target: Ident,
source_bindings: PerNS<Cell<Result<&'a NameBinding<'a>, Determinacy>>>,
target_bindings: PerNS<Cell<Option<&'a NameBinding<'a>>>>,
type_ns_only: bool,
nested: bool,
id: NodeId,
additional_ids: (NodeId, NodeId),
},
Glob {
is_prelude: bool,
max_vis: Cell<Option<Visibility>>,
id: NodeId,
},
ExternCrate {
source: Option<Symbol>,
target: Ident,
id: NodeId,
},
MacroUse,
MacroExport,
}Expand description
Contains data for specific kinds of imports.
Variants
Single
Fields
source: Identsource in use prefix::source as target.
target: Identtarget in use prefix::source as target.
source_bindings: PerNS<Cell<Result<&'a NameBinding<'a>, Determinacy>>>Bindings to which source refers to.
target_bindings: PerNS<Cell<Option<&'a NameBinding<'a>>>>Bindings introduced by target.
type_ns_only: booltrue for ...::{self [as target]} imports, false otherwise.
nested: boolDid this import result from a nested import? ie. use foo::{bar, baz};
id: NodeIdThe ID of the UseTree 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.
Glob
ExternCrate
MacroUse
MacroExport
Trait Implementations
sourceimpl<'a> Clone for ImportKind<'a>
impl<'a> Clone for ImportKind<'a>
sourcefn clone(&self) -> ImportKind<'a>
fn clone(&self) -> ImportKind<'a>
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations
impl<'a> !RefUnwindSafe for ImportKind<'a>
impl<'a> !Send for ImportKind<'a>
impl<'a> !Sync for ImportKind<'a>
impl<'a> Unpin for ImportKind<'a>
impl<'a> !UnwindSafe for ImportKind<'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: 112 bytes
Size for each variant:
Single: 111 bytesGlob: 11 bytesExternCrate: 23 bytesMacroUse: 0 bytesMacroExport: 0 bytes