mod abstract_data;
mod list_op;
mod path;
mod path_node;
mod path_parser;
mod schema;
pub use abstract_data::*;
pub use list_op::*;
pub use path::*;
pub use schema::{CHILDREN_KEYS, FIELD_KEYS};
use crate::vt;
#[repr(u32)]
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum SpecType {
Unknown = 0,
Attribute,
Connection,
Expression,
Mapper,
MapperArg,
Prim,
PseudoRoot,
Relationship,
RelationshipTarget,
Variant,
VariantSet,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum Specifier {
Def,
Over,
Class,
}
#[derive(Debug, Clone, Copy)]
pub enum Permission {
Public,
Private,
}
#[derive(Debug, Clone, Copy)]
pub enum Variability {
Varying,
Uniform,
}
#[derive(Debug, Default, Clone)]
pub struct LayerOffset {
pub offset: f64,
pub scale: f64,
}
#[derive(Debug, Default, Clone)]
pub struct Reference {
pub asset_path: String,
pub prim_path: Path,
pub layer_offset: LayerOffset,
pub custom_data: vt::Dictionary,
}
#[derive(Debug, Default, Clone)]
pub struct Payload {
pub asset_path: String,
pub prim_path: Path,
pub layer_offset: LayerOffset,
}
pub struct Relocate {
pub source: Path,
pub target: Path,
}
#[derive(Debug, Clone, PartialEq)]
pub struct AssetPath {
pub authored_path: String,
pub evaluated_path: String,
pub resolved_path: String,
}