Skip to main content

haystack_core/xeto/
bundled.rs

1//! Bundled standard Xeto library sources.
2
3/// A bundled Xeto library with name, source text, and dependencies.
4pub struct BundledLib {
5    pub name: &'static str,
6    pub source: &'static str,
7    pub depends: &'static [&'static str],
8}
9
10/// Return all bundled Xeto libraries in dependency order.
11///
12/// Libraries are ordered so that a library's dependencies appear before it.
13/// This allows sequential loading without missing dependency errors.
14pub fn bundled_libs() -> Vec<BundledLib> {
15    vec![
16        BundledLib {
17            name: "sys",
18            source: include_str!("../../data/xeto/sys.xeto"),
19            depends: &[],
20        },
21        BundledLib {
22            name: "sys.api",
23            source: include_str!("../../data/xeto/sys.api.xeto"),
24            depends: &["sys"],
25        },
26        BundledLib {
27            name: "sys.comp",
28            source: include_str!("../../data/xeto/sys.comp.xeto"),
29            depends: &["sys"],
30        },
31        BundledLib {
32            name: "sys.files",
33            source: include_str!("../../data/xeto/sys.files.xeto"),
34            depends: &["sys"],
35        },
36        BundledLib {
37            name: "sys.template",
38            source: include_str!("../../data/xeto/sys.template.xeto"),
39            depends: &["sys"],
40        },
41        BundledLib {
42            name: "ph",
43            source: include_str!("../../data/xeto/ph.xeto"),
44            depends: &["sys"],
45        },
46        BundledLib {
47            name: "ph.attrs",
48            source: include_str!("../../data/xeto/ph.attrs.xeto"),
49            depends: &["ph"],
50        },
51        BundledLib {
52            name: "ph.equips",
53            source: include_str!("../../data/xeto/ph.equips.xeto"),
54            depends: &["ph"],
55        },
56        BundledLib {
57            name: "ph.examples",
58            source: include_str!("../../data/xeto/ph.examples.xeto"),
59            depends: &["ph"],
60        },
61        BundledLib {
62            name: "ph.points",
63            source: include_str!("../../data/xeto/ph.points.xeto"),
64            depends: &["ph"],
65        },
66        BundledLib {
67            name: "ph.points.elec",
68            source: include_str!("../../data/xeto/ph.points.elec.xeto"),
69            depends: &["ph", "ph.points"],
70        },
71        BundledLib {
72            name: "ph.protocols",
73            source: include_str!("../../data/xeto/ph.protocols.xeto"),
74            depends: &["ph"],
75        },
76    ]
77}