quad_compat_rhai/module/resolvers/
mod.rs1use crate::func::native::SendSync;
2use crate::{Engine, EvalAltResult, Module, Position, Shared, AST};
3#[cfg(feature = "no_std")]
4use std::prelude::v1::*;
5
6mod collection;
7mod dummy;
8mod file;
9mod stat;
10
11pub use collection::ModuleResolversCollection;
12pub use dummy::DummyModuleResolver;
13#[cfg(not(feature = "no_std"))]
14#[cfg(not(any(target_arch = "wasm32", target_arch = "wasm64")))]
15pub use file::FileModuleResolver;
16pub use stat::StaticModuleResolver;
17
18pub trait ModuleResolver: SendSync {
20 fn resolve(
22 &self,
23 engine: &Engine,
24 source_path: Option<&str>,
25 path: &str,
26 pos: Position,
27 ) -> Result<Shared<Module>, Box<EvalAltResult>>;
28
29 #[allow(unused_variables)]
39 #[must_use]
40 fn resolve_ast(
41 &self,
42 engine: &Engine,
43 source_path: Option<&str>,
44 path: &str,
45 pos: Position,
46 ) -> Option<Result<AST, Box<EvalAltResult>>> {
47 None
48 }
49}