pub trait ModuleLoader: Debug {
    // Required methods
    fn load(&self, name: &Identifier) -> Result<ModuleRef, Error>;
    fn load_from_file(&self, file: PathBuf) -> Result<ModuleRef, Error>;
    fn load_from_reader(
        &self,
        reader: &mut dyn Read
    ) -> Result<ModuleRef, Error>;
    fn adopt(&self, module: ModuleRef);
    fn contains(&self, name: &Identifier) -> bool;
    fn get(&self, name: &Identifier) -> Option<ModuleRef>;
    fn get_source(&self, name: &Identifier) -> Option<Box<dyn AsRef<str>>>;
    fn resolver(&self) -> Rc<dyn ModuleResolver>;

    // Provided method
    fn adopt_raw(&self, module: Module) { ... }
}
Expand description

TBD

Note this trait does not require mutability even for clearly mutating operations.

Required Methods§

source

fn load(&self, name: &Identifier) -> Result<ModuleRef, Error>

source

fn load_from_file(&self, file: PathBuf) -> Result<ModuleRef, Error>

source

fn load_from_reader(&self, reader: &mut dyn Read) -> Result<ModuleRef, Error>

source

fn adopt(&self, module: ModuleRef)

source

fn contains(&self, name: &Identifier) -> bool

source

fn get(&self, name: &Identifier) -> Option<ModuleRef>

source

fn get_source(&self, name: &Identifier) -> Option<Box<dyn AsRef<str>>>

source

fn resolver(&self) -> Rc<dyn ModuleResolver>

Provided Methods§

source

fn adopt_raw(&self, module: Module)

Implementors§