SourceVariable(SourceVariable),
DerivedVariable(DerivedVariable),
CategoricalDomain(CategoricalDomain),
+ IntervalDomain(IntervalDomain),
Graph(Graph),
LabelFrame(LabelFrame),
Container(Container),
id: Option<String>,
variable_reference: VariableReference,
+ categories: Categories,
+}
+
+#[derive(Deserialize, Debug)]
+#[serde(rename_all = "camelCase")]
+struct Categories {
+ #[serde(rename = "@remove")]
+ remove: bool,
+
+ #[serde(rename = "$text")]
+ categories: String,
}
#[derive(Deserialize, Debug)]
#[serde(rename = "@color")]
color: Option<Color>,
+ #[serde(rename = "@color2")]
+ color2: Option<Color>,
+
+ #[serde(rename = "@font-family")]
+ font_family: Option<String>,
+
#[serde(rename = "@font-size")]
font_size: Option<String>,
#[serde(rename = "@decimal-offset")]
decimal_offset: Option<Length>,
+
+ #[serde(rename = "@symbol")]
+ symbol: Option<String>,
+
+ #[serde(default, rename = "$value")]
+ children: Vec<Style>,
}
#[derive(Copy, Clone, Debug, PartialEq, Eq, Deserialize)]
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
struct Graph {
+ #[serde(default, rename = "location")]
+ locations: Vec<Location>,
faceting: Option<Faceting>,
facet_layout: Option<FacetLayout>,
+ coordinates: Coordinates,
interval: Interval,
}
+#[derive(Deserialize, Debug)]
+#[serde(rename_all = "camelCase")]
+struct Location {
+ #[serde(rename = "@method")]
+ method: LocationMethod,
+ #[serde(rename = "@part")]
+ part: Part,
+ #[serde(rename = "@target")]
+ target: Option<String>,
+ #[serde(rename = "@value")]
+ value: Option<String>,
+}
+
+#[derive(Deserialize, Debug)]
+#[serde(rename_all = "camelCase")]
+enum LocationMethod {
+ Fixed,
+ SizeToContent,
+ Same,
+ Attach,
+}
+
+#[derive(Deserialize, Debug)]
+#[serde(rename_all = "camelCase")]
+enum Part {
+ Left,
+ Right,
+ Top,
+ Bottom,
+ Width,
+ Height,
+}
+
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
struct Faceting {
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
-struct Interval {}
+struct Coordinates {
+ #[serde(rename = "dimension")]
+ dimensions: Vec<Dimension>,
+}
+
+#[derive(Deserialize, Debug)]
+#[serde(rename_all = "camelCase")]
+struct Dimension {
+ scale: Option<Scale>,
+ axis: Axis,
+}
+
+#[derive(Deserialize, Debug)]
+#[serde(rename_all = "camelCase")]
+struct Scale {
+ #[serde(rename = "@method")]
+ method: Method,
+}
+
+#[derive(Deserialize, Debug)]
+#[serde(rename_all = "camelCase")]
+enum Method {
+ Linear,
+ Log,
+ Power,
+ #[serde(rename = "@log.safe")]
+ LogSafe,
+ #[serde(rename = "@power.safe")]
+ PowerSafe,
+ Logit,
+ Probit,
+ Asn,
+ Atanh,
+ Prob,
+ #[serde(rename = "@cLoglog")]
+ CLoglog,
+}
+
+#[derive(Deserialize, Debug)]
+#[serde(rename_all = "camelCase")]
+struct Interval {
+ #[serde(rename = "@dot")]
+ dot: bool,
+
+ #[serde(rename = "@style")]
+ style: Ref<Style>,
+
+ #[serde(default)]
+ position: Vec<Coordinate>,
+ x: Option<Coordinate>,
+ y: Option<Coordinate>,
+ z: Option<Coordinate>,
+}
+
+#[derive(Deserialize, Debug)]
+#[serde(rename_all = "camelCase")]
+struct Coordinate {
+ #[serde(rename = "@id")]
+ id: Option<String>,
+
+ #[serde(rename = "@variable")]
+ variable: String,
+}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
struct LabelFrame {
+ #[serde(default, rename = "location")]
+ locations: Vec<Location>,
label: Option<Label>,
}