rhai/module/resolvers/dummy.rs
1use crate::{Engine, ModuleResolver, Position, RhaiResultOf, SharedModule, ERR};
2#[cfg(feature = "no_std")]
3use std::prelude::v1::*;
4
5/// Empty/disabled [module][crate::Module] resolution service that acts as a dummy.
6///
7/// # Example
8///
9/// ```
10/// use rhai::{Engine, Module};
11/// use rhai::module_resolvers::DummyModuleResolver;
12///
13/// let resolver = DummyModuleResolver::new();
14/// let mut engine = Engine::new();
15/// engine.set_module_resolver(resolver);
16/// ```
17#[derive(Debug, Copy, Eq, PartialEq, Clone, Default, Hash)]
18pub struct DummyModuleResolver;
19
20impl DummyModuleResolver {
21 /// Create a new [`DummyModuleResolver`].
22 ///
23 /// # Example
24 ///
25 /// ```
26 /// use rhai::{Engine, Module};
27 /// use rhai::module_resolvers::DummyModuleResolver;
28 ///
29 /// let resolver = DummyModuleResolver::new();
30 /// let mut engine = Engine::new();
31 /// engine.set_module_resolver(resolver);
32 /// ```
33 #[inline(always)]
34 #[must_use]
35 pub const fn new() -> Self {
36 Self
37 }
38}
39
40impl ModuleResolver for DummyModuleResolver {
41 #[inline(always)]
42 fn resolve(
43 &self,
44 _: &Engine,
45 _: Option<&str>,
46 path: &str,
47 pos: Position,
48 ) -> RhaiResultOf<SharedModule> {
49 Err(ERR::ErrorModuleNotFound(path.into(), pos).into())
50 }
51}