Skip to main content

ModuleResolver

Trait ModuleResolver 

Source
pub trait ModuleResolver: Send + Sync {
    // Required methods
    fn workspace_config(&self, root: &Path) -> ResolverConfig;
    fn module_of_file(
        &self,
        root: &Path,
        file: &Path,
        cfg: &ResolverConfig,
    ) -> Vec<ModuleId>;
    fn resolve(
        &self,
        from_file: &Path,
        spec: &ImportSpec,
        cfg: &ResolverConfig,
    ) -> Resolution;
}
Expand description

Per-language module resolver.

Implements the Rust/TS/Python/etc-specific logic for turning an import specifier into a resolved file path.

Required Methods§

Source

fn workspace_config(&self, root: &Path) -> ResolverConfig

Read workspace config from the given root (e.g. Cargo.toml, tsconfig.json).

Source

fn module_of_file( &self, root: &Path, file: &Path, cfg: &ResolverConfig, ) -> Vec<ModuleId>

Return the canonical module identity/ies of a file within the workspace.

Source

fn resolve( &self, from_file: &Path, spec: &ImportSpec, cfg: &ResolverConfig, ) -> Resolution

Resolve an import specifier from from_file to a target file + name.

Implementors§

Source§

impl ModuleResolver for ClojureModuleResolver

Source§

impl ModuleResolver for CommonLispModuleResolver

Source§

impl ModuleResolver for CSharpModuleResolver

Source§

impl ModuleResolver for DModuleResolver

Source§

impl ModuleResolver for DartModuleResolver

Source§

impl ModuleResolver for ElixirModuleResolver

Source§

impl ModuleResolver for ElmModuleResolver

Source§

impl ModuleResolver for ErlangModuleResolver

Source§

impl ModuleResolver for FSharpModuleResolver

Source§

impl ModuleResolver for GleamModuleResolver

Source§

impl ModuleResolver for GoModuleResolver

Source§

impl ModuleResolver for GroovyModuleResolver

Source§

impl ModuleResolver for HaskellModuleResolver

Source§

impl ModuleResolver for JavaModuleResolver

Source§

impl ModuleResolver for JsModuleResolver

Source§

impl ModuleResolver for JuliaModuleResolver

Source§

impl ModuleResolver for KotlinModuleResolver

Source§

impl ModuleResolver for LuaModuleResolver

Source§

impl ModuleResolver for MatlabModuleResolver

Source§

impl ModuleResolver for NixModuleResolver

Source§

impl ModuleResolver for OCamlModuleResolver

Source§

impl ModuleResolver for PerlModuleResolver

Source§

impl ModuleResolver for PhpModuleResolver

Source§

impl ModuleResolver for PrologModuleResolver

Source§

impl ModuleResolver for PythonModuleResolver

Source§

impl ModuleResolver for RModuleResolver

Source§

impl ModuleResolver for ReScriptModuleResolver

Source§

impl ModuleResolver for RubyModuleResolver

Source§

impl ModuleResolver for RustModuleResolver

Source§

impl ModuleResolver for ScalaModuleResolver

Source§

impl ModuleResolver for SchemeModuleResolver

Source§

impl ModuleResolver for SwiftModuleResolver

Source§

impl ModuleResolver for TsModuleResolver

Source§

impl ModuleResolver for VBModuleResolver

Source§

impl ModuleResolver for ZigModuleResolver