Trait rquickjs::loader::Resolver

source ·
pub trait Resolver {
    // Required method
    fn resolve<'js>(
        &mut self,
        ctx: &Ctx<'js>,
        base: &str,
        name: &str
    ) -> Result<String, Error>;
}
Available on crate feature loader only.
Expand description

Module resolver interface

Required Methods§

source

fn resolve<'js>( &mut self, ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

Normalize module name

The resolving may looks like:

Ok(if !name.starts_with('.') {
    name.into()
} else {
    let mut split = base.rsplitn(2, '/');
    let path = match (split.next(), split.next()) {
        (_, Some(path)) => path,
        _ => "",
    };
    format!("{path}/{name}")
})

Implementations on Foreign Types§

source§

impl Resolver for ()

source§

fn resolve<'js>( &mut self, _ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

source§

impl<A> Resolver for (A,)
where A: Resolver,

source§

fn resolve<'js>( &mut self, _ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

source§

impl<A, B> Resolver for (A, B)
where A: Resolver, B: Resolver,

source§

fn resolve<'js>( &mut self, _ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

source§

impl<A, B, C> Resolver for (A, B, C)
where A: Resolver, B: Resolver, C: Resolver,

source§

fn resolve<'js>( &mut self, _ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

source§

impl<A, B, C, D> Resolver for (A, B, C, D)
where A: Resolver, B: Resolver, C: Resolver, D: Resolver,

source§

fn resolve<'js>( &mut self, _ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

source§

impl<A, B, C, D, E> Resolver for (A, B, C, D, E)
where A: Resolver, B: Resolver, C: Resolver, D: Resolver, E: Resolver,

source§

fn resolve<'js>( &mut self, _ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

source§

impl<A, B, C, D, E, F> Resolver for (A, B, C, D, E, F)
where A: Resolver, B: Resolver, C: Resolver, D: Resolver, E: Resolver, F: Resolver,

source§

fn resolve<'js>( &mut self, _ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

source§

impl<A, B, C, D, E, F, G> Resolver for (A, B, C, D, E, F, G)
where A: Resolver, B: Resolver, C: Resolver, D: Resolver, E: Resolver, F: Resolver, G: Resolver,

source§

fn resolve<'js>( &mut self, _ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

source§

impl<A, B, C, D, E, F, G, H> Resolver for (A, B, C, D, E, F, G, H)
where A: Resolver, B: Resolver, C: Resolver, D: Resolver, E: Resolver, F: Resolver, G: Resolver, H: Resolver,

source§

fn resolve<'js>( &mut self, _ctx: &Ctx<'js>, base: &str, name: &str ) -> Result<String, Error>

Implementors§

source§

impl Resolver for BuiltinResolver

source§

impl Resolver for FileResolver

source§

impl<D> Resolver for Bundle<&'static Map<&'static str, D>>

source§

impl<D> Resolver for Bundle<&'static [(&'static str, D)]>

source§

impl<R> Resolver for Compile<R>
where R: Resolver,