cxc/libraries/std_lib/
mod.rs1use 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}