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.
Implementations§
Source§impl Router
Dispatches resolution of a module path to sub-resolvers.
impl Router
Dispatches resolution of a module path to sub-resolvers.
See documentation in Self::mount_resolver
Sourcepub fn mount_resolver(
&mut self,
prefix: ModulePath,
resolver: impl Resolver + 'static,
)
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.
Sourcepub fn mount_fallback_resolver(&mut self, resolver: impl Resolver + 'static)
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 Resolver for Router
impl Resolver for Router
Source§fn resolve_source<'a>(
&'a self,
path: &ModulePath,
) -> Result<Cow<'a, str>, ResolveError>
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>
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>
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
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>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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