stainless_script/stdlib/
mod.rs1use 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}