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}