1mod abstract_data;
4mod list_op;
5mod path;
6mod path_node;
7mod path_parser;
8mod schema;
9
10pub use abstract_data::*;
11pub use list_op::*;
12pub use path::*;
13pub use schema::{CHILDREN_KEYS, FIELD_KEYS};
14
15use crate::vt;
16
17#[repr(u32)]
20#[derive(Debug, Clone, Copy, PartialEq)]
21pub enum SpecType {
22 Unknown = 0,
24 Attribute,
25 Connection,
26 Expression,
27 Mapper,
28 MapperArg,
29 Prim,
30 PseudoRoot,
31 Relationship,
32 RelationshipTarget,
33 Variant,
34 VariantSet,
35}
36
37#[derive(Debug, Clone, Copy, PartialEq)]
39pub enum Specifier {
40 Def,
41 Over,
42 Class,
43}
44
45#[derive(Debug, Clone, Copy)]
47pub enum Permission {
48 Public,
49 Private,
50}
51
52#[derive(Debug, Clone, Copy)]
54pub enum Variability {
55 Varying,
56 Uniform,
57}
58
59#[derive(Debug, Default, Clone)]
61pub struct LayerOffset {
62 pub offset: f64,
63 pub scale: f64,
64}
65
66#[derive(Debug, Default, Clone)]
68pub struct Reference {
69 pub asset_path: String,
71 pub prim_path: Path,
73 pub layer_offset: LayerOffset,
75 pub custom_data: vt::Dictionary,
77}
78
79#[derive(Debug, Default, Clone)]
81pub struct Payload {
82 pub asset_path: String,
84 pub prim_path: Path,
86 pub layer_offset: LayerOffset,
88}
89
90pub struct Relocate {
92 pub source: Path,
93 pub target: Path,
94}
95
96#[derive(Debug, Clone, PartialEq)]
98pub struct AssetPath {
99 pub authored_path: String,
100 pub evaluated_path: String,
101 pub resolved_path: String,
102}