Skip to main content

Router

Struct Router 

Source
pub struct Router { /* private fields */ }
Expand description

A resolver that can dispatch imports to several sub-resolvers based on the import path prefix.

Add sub-resolvers with Self::mount_resolver.

This resolver is not thread-safe (not Send or Sync).

Implementations§

Source§

impl Router

Dispatches resolution of a module path to sub-resolvers.

See documentation in Self::mount_resolver

Source

pub fn new() -> Self

Create a new resolver.

Source

pub fn mount_resolver( &mut self, prefix: ModulePath, resolver: impl Resolver + 'static, )

Mount a resolver at a given path prefix.

All import paths starting with prefix will be dispatched to the resolver with the suffix of the path. The prefix path must have an Absolute or Package origin and the suffix path will be given an Absolute origin.

If none of the prefixes match, the fallback resolver will be used.

Source

pub fn mount_fallback_resolver(&mut self, resolver: impl Resolver + 'static)

Mount a fallback resolver that is used when no other prefix match.

Trait Implementations§

Source§

impl Default for Router

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Resolver for Router

Source§

fn resolve_source<'a>( &'a self, path: &ModulePath, ) -> Result<Cow<'a, str>, ResolveError>

Try to resolve a source file identified by a module path.
Source§

fn display_name(&self, path: &ModulePath) -> Option<String>

Get the display name of the module path. Implementing this is optional.
Source§

fn fs_path(&self, path: &ModulePath) -> Result<PathBuf, ResolveError>

Get the filesystem path of the module path. Implementing this is optional.
Source§

fn canonical_path(&self, path: &ModulePath) -> ModulePath

Get the canonical form of a module path.
Source§

fn module_path(&self, _fs_path: &Path) -> Result<ModulePath, ResolveError>

Get the module path of the filesystem path. Implementing this is optional.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Router

§

impl !Send for Router

§

impl !Sync for Router

§

impl !UnwindSafe for Router

§

impl Freeze for Router

§

impl Unpin for Router

§

impl UnsafeUnpin for Router

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

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

Source§

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>,

Source§

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.