pub enum ImportState {
    Explicit,
    Implicit,
    Duplicate,
    Ambiguous,
}
Expand description

The resolve result of import

  • function, constant, structure, interfaces, type share a namespace
  • derive and macro share a namespace
  • If a macro is an implicit macro, it occupies the namespace of the function
namespace a {
    class A;
    class B;
    class C;
    class D;
}

namespace b {
    class A;
    class B;
    class C;
}

using a.*;
using b.*;
using a.{A, B};
using b.B;

§Script Mode

In script mode, adjusting the import statement orders at the same level does not affect the final result.

  • You cannot explicitly import two objects with the same name, it is a compile-time error

  • You cannot implicitly import two objects with the same name, this is a compile-time warning

  • Extensions cannot be implicitly imported

  • A: a::A (explicit)

  • B: null (duplicate, error, not available)

  • C: null (ambiguous, waring, not available)

  • D: a::D (implicit)

§Interactive Mode

In repl mode, imports always available.

  • later implicit imports will override earlier implicit imports

  • later explicit imports will override earlier explicit imports

  • A: a::A (explicit)

  • B: b::B (explicit)

  • C: b::C (implicit)

  • D: a::D (implicit)

Variants§

§

Explicit

Available by explicit import

§

Implicit

Available by implicit import

§

Duplicate

Unavailable due to duplicate import

§

Ambiguous

Unavailable due to ambiguous import

Trait Implementations§

source§

impl Clone for ImportState

source§

fn clone(&self) -> ImportState

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ImportState

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Hash for ImportState

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for ImportState

source§

fn eq(&self, other: &ImportState) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for ImportState

source§

impl Eq for ImportState

source§

impl StructuralPartialEq for ImportState

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.