cxc/libraries/std_lib/
mod.rs

1use super::{Library, TypeInterfaceLib};
2
3pub struct StdLib;
4
5mod atomic_lib;
6pub mod bit_array;
7mod default;
8pub mod hash;
9mod print_lib;
10pub mod string;
11mod to_string;
12mod type_helpers;
13mod unit_lib;
14mod drop_lib;
15mod value_lib;
16mod array_helper_funcs_lib;
17use atomic_lib::AtomicLib;
18use bit_array::BitArrayLib;
19use default::DefaultLib;
20use print_lib::PrintLib;
21use string::StringLib;
22use to_string::ToStringLib;
23use type_helpers::TypeHelperLib;
24use unit_lib::UnitLib;
25use value_lib::ValueLib;
26use self::array_helper_funcs_lib::ArrayHelperLib;
27
28impl Library for StdLib {
29    fn add_to_unit(&self, unit: &mut crate::Unit) {
30        unit.push_script(include_str!("ptr.cxc")).unwrap();
31
32        unit.add_lib(ArrayHelperLib);
33
34        unit.push_script(include_str!("vec.cxc")).unwrap();
35        unit.push_script(include_str!("hashmap.cxc")).unwrap();
36        unit.push_script(include_str!("rc.cxc")).unwrap();
37        unit.push_script(include_str!("lucid.cxc")).unwrap();
38        unit.push_script(include_str!("range.cxc")).unwrap();
39        unit.push_script(include_str!("slice.cxc")).unwrap();
40        unit.push_script(include_str!("alloc.cxc")).unwrap();
41
42        unit.add_lib(StringLib);
43        unit.add_lib(ToStringLib);
44        unit.add_lib(DefaultLib);
45        unit.add_lib(TypeInterfaceLib);
46        unit.add_lib(PrintLib);
47        unit.add_lib(BitArrayLib);
48        unit.add_lib(TypeHelperLib);
49
50        unit.add_lib(AtomicLib);
51        unit.push_script(include_str!("arc.cxc")).unwrap();
52
53        unit.add_lib(UnitLib);
54        unit.add_lib(ValueLib);
55
56        unit.add_external_default::<bool>();
57    }
58}