2020-12-26 13:05:57 +08:00
|
|
|
use crate::{Engine, EvalAltResult, Module, ModuleResolver, Position, Shared};
|
2021-04-17 15:15:54 +08:00
|
|
|
#[cfg(feature = "no_std")]
|
|
|
|
use std::prelude::v1::*;
|
2020-12-26 13:05:57 +08:00
|
|
|
|
2021-01-02 23:30:10 +08:00
|
|
|
/// Empty/disabled [module][Module] resolution service that acts as a dummy.
|
2020-12-26 13:05:57 +08:00
|
|
|
///
|
|
|
|
/// # Example
|
|
|
|
///
|
|
|
|
/// ```
|
|
|
|
/// use rhai::{Engine, Module};
|
|
|
|
/// use rhai::module_resolvers::DummyModuleResolver;
|
|
|
|
///
|
|
|
|
/// let resolver = DummyModuleResolver::new();
|
|
|
|
/// let mut engine = Engine::new();
|
|
|
|
/// engine.set_module_resolver(resolver);
|
|
|
|
/// ```
|
|
|
|
#[derive(Debug, Copy, Eq, PartialEq, Clone, Default, Hash)]
|
|
|
|
pub struct DummyModuleResolver;
|
|
|
|
|
|
|
|
impl DummyModuleResolver {
|
|
|
|
/// Create a new [`DummyModuleResolver`].
|
|
|
|
///
|
|
|
|
/// # Example
|
|
|
|
///
|
|
|
|
/// ```
|
|
|
|
/// use rhai::{Engine, Module};
|
|
|
|
/// use rhai::module_resolvers::DummyModuleResolver;
|
|
|
|
///
|
|
|
|
/// let resolver = DummyModuleResolver::new();
|
|
|
|
/// let mut engine = Engine::new();
|
|
|
|
/// engine.set_module_resolver(resolver);
|
|
|
|
/// ```
|
|
|
|
#[inline(always)]
|
2021-05-18 12:24:11 +08:00
|
|
|
pub const fn new() -> Self {
|
|
|
|
Self
|
2020-12-26 13:05:57 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl ModuleResolver for DummyModuleResolver {
|
|
|
|
#[inline(always)]
|
|
|
|
fn resolve(
|
|
|
|
&self,
|
|
|
|
_: &Engine,
|
2021-04-02 12:34:39 +08:00
|
|
|
_: Option<&str>,
|
2020-12-26 13:05:57 +08:00
|
|
|
path: &str,
|
|
|
|
pos: Position,
|
|
|
|
) -> Result<Shared<Module>, Box<EvalAltResult>> {
|
|
|
|
EvalAltResult::ErrorModuleNotFound(path.into(), pos).into()
|
|
|
|
}
|
|
|
|
}
|