stainless_script/stdlib/
mod.rs

1use crate::{class::Class, module::ModulePath, Plugin};
2use std::collections::HashMap;
3
4mod any_type;
5mod array_type;
6mod bool_type;
7mod dict_type;
8mod flow_nodes;
9mod if_node;
10mod nop_node;
11mod number_type;
12mod print_node;
13mod string_type;
14mod subroutine;
15mod variable_node;
16
17pub use any_type::*;
18pub use array_type::*;
19pub use bool_type::*;
20pub use dict_type::*;
21pub use flow_nodes::*;
22pub use if_node::*;
23pub use nop_node::*;
24pub use number_type::*;
25pub use print_node::*;
26pub use string_type::*;
27pub use subroutine::*;
28pub use variable_node::*;
29
30pub struct StdPlugin;
31
32impl Plugin for StdPlugin {
33    fn classes(&self) -> HashMap<ModulePath, Class> {
34        [
35            any_class(),
36            array_class(),
37            bool_class(),
38            dict_class(),
39            start_node_class(),
40            end_node_class(),
41            if_node_class(),
42            nop_node_class(),
43            number_class(),
44            print_class(),
45            string_class(),
46            subroutine_class(),
47            variable_get_class(),
48            variable_set_class(),
49        ]
50        .into_iter()
51        .map(|cl| (ModulePath(vec!["std".into()], cl.name.clone()), cl))
52        .collect()
53    }
54}