51 lines
1.3 KiB
Rust
Raw Normal View History

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,
_: 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()
}
}