Enum rustc_resolve::imports::ImportKind [−][src]
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,
},
Glob {
is_prelude: bool,
max_vis: Cell<Visibility>,
},
ExternCrate {
source: Option<Symbol>,
target: Ident,
},
MacroUse,
}
Expand description
Contains data for specific kinds of imports.
Variants
Fields of Single
source: Ident
source
in use prefix::source as target
.
target: Ident
target
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: bool
true
for ...::{self [as target]}
imports, false
otherwise.
nested: bool
Did this import result from a nested import? ie. use foo::{bar, baz};
Fields of Glob
is_prelude: bool
max_vis: Cell<Visibility>
Trait Implementations
Auto 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
Mutably borrows from an owned value. Read more
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: 104 bytes
Size for each variant:
Single
: 103 bytesGlob
: 11 bytesExternCrate
: 19 bytesMacroUse
: 0 bytes