Trait quickjs_runtime::quickjsruntime::ModuleLoader[][src]

pub trait ModuleLoader {
    fn normalize_path(
        &self,
        q_ctx: &QuickJsContext,
        ref_path: &str,
        path: &str
    ) -> Option<String>;
fn load_module(
        &self,
        q_ctx: &QuickJsContext,
        absolute_path: &str
    ) -> Result<*mut JSModuleDef, EsError>;
fn has_module(&self, q_ctx: &QuickJsContext, absolute_path: &str) -> bool;
unsafe fn init_module(
        &self,
        q_ctx: &QuickJsContext,
        module: *mut JSModuleDef
    ) -> Result<(), EsError>; }

this is the internal abstract loader which is used to actually load the modules

Required methods

fn normalize_path(
    &self,
    q_ctx: &QuickJsContext,
    ref_path: &str,
    path: &str
) -> Option<String>
[src]

the normalize methods is used to translate a possible relative path to an absolute path of a module it doubles as a method to see IF a module can actually be loaded by a module loader (return None if the module can not be found)

fn load_module(
    &self,
    q_ctx: &QuickJsContext,
    absolute_path: &str
) -> Result<*mut JSModuleDef, EsError>
[src]

load the Module

fn has_module(&self, q_ctx: &QuickJsContext, absolute_path: &str) -> bool[src]

has module is used to check if a loader can provide a certain module, this is currently used to check which loader should init a native module

unsafe fn init_module(
    &self,
    q_ctx: &QuickJsContext,
    module: *mut JSModuleDef
) -> Result<(), EsError>
[src]

init a module, currently used to init native modules

Safety

be safe with the moduledef ptr

Loading content...

Implementors

impl ModuleLoader for NativeModuleLoaderAdapter[src]

impl ModuleLoader for ScriptModuleLoaderAdapter[src]

Loading content...