pub struct ModuleResolver { /* private fields */ }Expand description
Resolves and loads modules
Implementations§
Source§impl ModuleResolver
impl ModuleResolver
Sourcepub fn find_module_file(
&self,
base_dir: &Path,
module_path: &[String],
) -> Option<PathBuf>
pub fn find_module_file( &self, base_dir: &Path, module_path: &[String], ) -> Option<PathBuf>
Find the file for a module path
Sourcepub fn extract_exports(program: &Program) -> (HashSet<String>, HashSet<String>)
pub fn extract_exports(program: &Program) -> (HashSet<String>, HashSet<String>)
Extract exports from a parsed program Returns (predicate exports, function exports)
Sourcepub fn load_module(
&mut self,
base_dir: &Path,
module_path: &[String],
) -> Result<&LoadedModule, ModuleError>
pub fn load_module( &mut self, base_dir: &Path, module_path: &[String], ) -> Result<&LoadedModule, ModuleError>
Load a module from a path
Sourcepub fn check_import(
&self,
module_path: &[String],
predicate: &str,
) -> Result<(), ModuleError>
pub fn check_import( &self, module_path: &[String], predicate: &str, ) -> Result<(), ModuleError>
Check if a predicate can be imported from a module
Sourcepub fn validate_imports(
&self,
program: &Program,
) -> Result<(HashMap<String, Vec<String>>, HashMap<String, Vec<String>>), ModuleError>
pub fn validate_imports( &self, program: &Program, ) -> Result<(HashMap<String, Vec<String>>, HashMap<String, Vec<String>>), ModuleError>
Validate all imports in a program Returns (predicate imports, function imports) mapped to their source modules
Sourcepub fn get_module(&self, module_path: &[String]) -> Option<&LoadedModule>
pub fn get_module(&self, module_path: &[String]) -> Option<&LoadedModule>
Get a loaded module by path
Sourcepub fn loaded_modules(&self) -> Vec<&str>
pub fn loaded_modules(&self) -> Vec<&str>
Get all loaded module paths (for testing)
Sourcepub fn merge_imports(&self, program: Program) -> Result<Program, ModuleError>
pub fn merge_imports(&self, program: Program) -> Result<Program, ModuleError>
Auto Trait Implementations§
impl Freeze for ModuleResolver
impl RefUnwindSafe for ModuleResolver
impl Send for ModuleResolver
impl Sync for ModuleResolver
impl Unpin for ModuleResolver
impl UnsafeUnpin for ModuleResolver
impl UnwindSafe for ModuleResolver
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