rune/modules/collections/
mod.rs

1//! Dynamic collections.
2
3#[cfg(feature = "alloc")]
4pub(crate) mod hash_map;
5#[cfg(feature = "alloc")]
6pub(crate) use hash_map::HashMap;
7
8#[cfg(feature = "alloc")]
9pub(crate) mod hash_set;
10#[cfg(feature = "alloc")]
11pub(crate) use hash_set::HashSet;
12
13#[cfg(feature = "alloc")]
14pub(crate) mod vec_deque;
15#[cfg(feature = "alloc")]
16pub(crate) use vec_deque::VecDeque;
17
18use crate as rune;
19use crate::{ContextError, Module};
20
21/// Module defining collections.
22#[rune::module(::std::collections)]
23pub fn module() -> Result<Module, ContextError> {
24    let mut m = Module::from_meta(self::module_meta)?;
25
26    #[cfg(feature = "alloc")]
27    m.reexport(
28        ["HashMap"],
29        rune::item!(::std::collections::hash_map::HashMap),
30    )?;
31
32    #[cfg(feature = "alloc")]
33    m.reexport(
34        ["HashSet"],
35        rune::item!(::std::collections::hash_set::HashSet),
36    )?;
37
38    #[cfg(feature = "alloc")]
39    m.reexport(
40        ["VecDeque"],
41        rune::item!(::std::collections::vec_deque::VecDeque),
42    )?;
43
44    Ok(m)
45}