1#[path = "citizen/class.rs"]
5mod class;
6#[path = "citizen/codec.rs"]
7mod codec;
8#[path = "citizen/construct.rs"]
9mod construct;
10#[path = "citizen/inventory.rs"]
11mod inventory;
12#[path = "citizen/recursive_codec.rs"]
13mod recursive_codec;
14
15pub(crate) use class::register_shape_citizen_class;
16pub(crate) use codec::{
17 build_shape_value, decode_expr_kind, decode_extra, decode_hooks, decode_shape_list,
18 decode_shape_value, decode_symbol, decode_table_fields, decode_venn_members, encode_extra,
19 encode_hooks, encode_shape_expr, encode_shape_list, encode_table_fields, expr_kind_symbol,
20 or_strategy_symbol,
21};
22pub(crate) use recursive_codec::{decode_shape_defs, encode_shape_defs};
23
24pub fn any_shape_class_symbol() -> sim_kernel::Symbol {
26 sim_kernel::Symbol::qualified("shape", "Any")
27}
28
29pub fn exact_expr_shape_class_symbol() -> sim_kernel::Symbol {
31 sim_kernel::Symbol::qualified("shape", "ExactExpr")
32}
33
34pub fn expr_kind_shape_class_symbol() -> sim_kernel::Symbol {
36 sim_kernel::Symbol::qualified("shape", "ExprKind")
37}
38
39pub fn class_shape_class_symbol() -> sim_kernel::Symbol {
41 sim_kernel::Symbol::qualified("shape", "Class")
42}
43
44pub fn list_shape_class_symbol() -> sim_kernel::Symbol {
46 sim_kernel::Symbol::qualified("shape", "List")
47}
48
49pub fn table_shape_class_symbol() -> sim_kernel::Symbol {
51 sim_kernel::Symbol::qualified("shape", "Table")
52}
53
54pub fn or_shape_class_symbol() -> sim_kernel::Symbol {
56 sim_kernel::Symbol::qualified("shape", "Or")
57}
58
59pub fn and_shape_class_symbol() -> sim_kernel::Symbol {
61 sim_kernel::Symbol::qualified("shape", "And")
62}
63
64pub fn not_shape_class_symbol() -> sim_kernel::Symbol {
66 sim_kernel::Symbol::qualified("shape", "Not")
67}
68
69pub fn repeat_shape_class_symbol() -> sim_kernel::Symbol {
71 sim_kernel::Symbol::qualified("shape", "Repeat")
72}
73
74pub fn shape_defs_class_symbol() -> sim_kernel::Symbol {
76 sim_kernel::Symbol::qualified("shape", "Defs")
77}
78
79pub fn shape_def_ref_class_symbol() -> sim_kernel::Symbol {
81 sim_kernel::Symbol::qualified("shape", "Ref")
82}
83
84pub fn hooked_shape_class_symbol() -> sim_kernel::Symbol {
86 sim_kernel::Symbol::qualified("shape", "Hooked")
87}
88
89pub fn venn_shape_set_class_symbol() -> sim_kernel::Symbol {
91 sim_kernel::Symbol::qualified("shape", "Venn")
92}