#![allow(
missing_docs,
clippy::doc_lazy_continuation,
clippy::large_enum_variant
)]
use crate::removable_value::RemovableValue;
use derive_builder::Builder;
use derive_more::From;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Vegalite {
#[serde(rename = "$schema")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default = "Some(\"https://vega.github.io/schema/vega-lite/v4.json\".to_string())")]
pub schema: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<Box<VegaliteAlign>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub autosize: Option<Box<Autosize>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub background: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bounds: Option<Box<Bounds>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub center: Option<Box<Center>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub config: Option<Box<Config>>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub data: RemovableValue<UrlData>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datasets: Option<HashMap<String, InlineDatasetValue>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encoding: Option<Box<EdEncoding>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark: Option<AnyMark>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub padding: Option<Box<Padding>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub params: Option<Vec<Parameter>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub projection: Option<Box<Projection>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<Box<Resolve>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<HashMap<String, SelectionDef>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spacing: Option<Box<Spacing>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title: Option<TitleUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub transform: Option<Vec<Transform>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub usermeta: Option<HashMap<String, Option<serde_json::Value>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub view: Option<Box<ViewBackground>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub columns: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet: Option<Box<Facet>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spec: Option<Box<VegaliteSpec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub layer: Option<Vec<LayerElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub repeat: Option<Box<RepeatUnion>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub concat: Option<Vec<NormalizedSpec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub vconcat: Option<Vec<NormalizedSpec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hconcat: Option<Vec<NormalizedSpec>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RowColLayoutAlign {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<LayoutAlign>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row: Option<LayoutAlign>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct AutoSizeParams {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub contains: Option<Contains>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resize: Option<bool>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub auto_size_params_type: Option<AutosizeType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct BackgroundExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RowColBoolean {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct NormalizedSpec {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<Box<VegaliteAlign>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bounds: Option<Box<Bounds>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub center: Option<Box<Center>>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub data: RemovableValue<UrlData>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encoding: Option<Box<EdEncoding>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark: Option<AnyMark>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub projection: Option<Box<Projection>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<Box<Resolve>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<HashMap<String, SelectionDef>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spacing: Option<Box<Spacing>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title: Option<TitleUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub transform: Option<Vec<Transform>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub view: Option<Box<ViewBackground>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub layer: Option<Vec<LayerElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub columns: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub repeat: Option<Box<RepeatUnion>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spec: Option<NormalizedSpecSpec>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet: Option<Box<Facet>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub concat: Option<Vec<NormalizedSpec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub vconcat: Option<Vec<NormalizedSpec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hconcat: Option<Vec<NormalizedSpec>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct UrlData {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<DataFormat>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub values: Option<UrlDataInlineDataset>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sequence: Option<SequenceParams>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sphere: Option<SphereUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub graticule: Option<Graticule>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct DataFormat {
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub parse: RemovableValue<HashMap<String, Option<String>>>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub data_format_type: Option<DataFormatType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub delimiter: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub property: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub feature: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mesh: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct GraticuleParams {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<Vec<Vec<f64>>>,
#[serde(rename = "extentMajor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent_major: Option<Vec<Vec<f64>>>,
#[serde(rename = "extentMinor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent_minor: Option<Vec<Vec<f64>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub precision: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<Vec<f64>>,
#[serde(rename = "stepMajor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step_major: Option<Vec<f64>>,
#[serde(rename = "stepMinor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step_minor: Option<Vec<f64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SequenceParams {
#[serde(rename = "as")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sequence_params_as: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stop: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SphereClass {}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct EdEncoding {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<AngleClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<ColorClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<RowColumnEncodingFieldDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<DescriptionClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub detail: Option<Detail>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet: Option<FacetEncodingFieldDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<FillClass>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<FillOpacityClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<HrefClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub key: Option<KeyClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub latitude: Option<LatitudeClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub latitude2: Option<Latitude2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub longitude: Option<LongitudeClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub longitude2: Option<Longitude2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<OpacityClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<Order>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<RadiusClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<Radius2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row: Option<RowColumnEncodingFieldDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<MarkPropDefStringNullTypeForShape>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<SizeClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<StrokeClass>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<MarkPropDefNumber>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<StrokeOpacityClass>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<StrokeWidthClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<TextDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<ThetaClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<Theta2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<EncodingTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<UrlClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<X2Class>,
#[serde(rename = "xError")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x_error: Option<XErrorClass>,
#[serde(rename = "xError2")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x_error2: Option<XError2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<Y2Class>,
#[serde(rename = "yError")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y_error: Option<YErrorClass>,
#[serde(rename = "yError2")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y_error2: Option<YError2Class>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct AngleClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<AngleCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_number_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ArgmDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub argmax: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub argmin: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct BinParams {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub anchor: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub base: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub binned: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub divide: Option<Vec<f64>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<BinExtent>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub maxbins: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub minstep: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub nice: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub steps: Option<Vec<f64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct BinExtentClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encoding: Option<SingleDefUnitChannel>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalValueDefNumberExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalValueDefNumberExprRefValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Selection {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub not: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub and: Option<Vec<SelectionCompositionElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub or: Option<Vec<SelectionCompositionElement>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Predicate {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub not: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub and: Option<Vec<PredicateCompositionElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub or: Option<Vec<PredicateCompositionElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub equal: Option<Equal>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub range: Option<LogicalNotPredicateRange>,
#[serde(rename = "oneOf")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub one_of: Option<Vec<SelectionInitInterval>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub lt: Option<Lt>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gt: Option<Lt>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub lte: Option<Lt>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gte: Option<Lt>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub valid: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct EqualDateTime {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub date: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub day: Option<Day>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hours: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub milliseconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub minutes: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub month: Option<Month>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quarter: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub seconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub utc: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub year: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct GtDateTime {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub date: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub day: Option<Day>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hours: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub milliseconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub minutes: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub month: Option<Month>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quarter: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub seconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub utc: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub year: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct DateTime {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub date: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub day: Option<Day>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hours: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub milliseconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub minutes: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub month: Option<Month>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quarter: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub seconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub utc: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub year: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RangeDateTime {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub date: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub day: Option<Day>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hours: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub milliseconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub minutes: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub month: Option<Month>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quarter: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub seconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub utc: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub year: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct TimeUnitParams {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub maxbins: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub unit: Option<TimeUnit>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub utc: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefNumberExprRefClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub conditional_value_def_number_expr_ref_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RepeatRefClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub date: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub day: Option<Day>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hours: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub milliseconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub minutes: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub month: Option<Month>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quarter: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub seconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub utc: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub year: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub repeat: Option<RepeatEnum>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RepeatRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub repeat: Option<RepeatEnum>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Legend {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "clipHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clip_height: Option<CornerRadiusUnion>,
#[serde(rename = "columnPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column_padding: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub columns: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub direction: Option<Orientation>,
#[serde(rename = "fillColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_color: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "gradientLength")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_length: Option<FontSize>,
#[serde(rename = "gradientOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "gradientStrokeColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_stroke_color: Option<Box<Color>>,
#[serde(rename = "gradientStrokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_stroke_width: Option<FontSize>,
#[serde(rename = "gradientThickness")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_thickness: Option<FontSize>,
#[serde(rename = "gridAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_align: Option<GridAlign>,
#[serde(rename = "labelAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_align: Option<TitleAlignUnion>,
#[serde(rename = "labelBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_baseline: Option<TextBaseline>,
#[serde(rename = "labelColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_color: Option<Box<Color>>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "labelFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font: Option<Box<Color>>,
#[serde(rename = "labelFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_size: Option<FontSize>,
#[serde(rename = "labelFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_style: Option<Box<Color>>,
#[serde(rename = "labelFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_weight: Option<FontWeightUnion>,
#[serde(rename = "labelLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_limit: Option<CornerRadiusUnion>,
#[serde(rename = "labelOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_offset: Option<CornerRadiusUnion>,
#[serde(rename = "labelOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "labelOverlap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_overlap: Option<LabelOverlapUnion>,
#[serde(rename = "labelPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_padding: Option<CornerRadiusUnion>,
#[serde(rename = "labelSeparation")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_separation: Option<CornerRadiusUnion>,
#[serde(rename = "legendX")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub legend_x: Option<CornerRadiusUnion>,
#[serde(rename = "legendY")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub legend_y: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<LegendOrient>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub padding: Option<CornerRadiusUnion>,
#[serde(rename = "rowPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row_padding: Option<CornerRadiusUnion>,
#[serde(rename = "strokeColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_color: Option<Box<Color>>,
#[serde(rename = "symbolDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_dash: Option<StrokeDashUnion>,
#[serde(rename = "symbolDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "symbolFillColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_fill_color: Option<Box<Color>>,
#[serde(rename = "symbolLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_limit: Option<CornerRadiusUnion>,
#[serde(rename = "symbolOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_offset: Option<CornerRadiusUnion>,
#[serde(rename = "symbolOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "symbolSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_size: Option<FontSize>,
#[serde(rename = "symbolStrokeColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_stroke_color: Option<Box<Color>>,
#[serde(rename = "symbolStrokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_stroke_width: Option<FontSize>,
#[serde(rename = "symbolType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_type: Option<Box<Color>>,
#[serde(rename = "tickCount")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_count: Option<TickCount>,
#[serde(rename = "tickMinStep")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_min_step: Option<CornerRadiusUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "titleAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_align: Option<TitleAlignUnion>,
#[serde(rename = "titleAnchor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_anchor: Option<TitleAnchorUnion>,
#[serde(rename = "titleBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_baseline: Option<TextBaseline>,
#[serde(rename = "titleColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_color: Option<Box<Color>>,
#[serde(rename = "titleFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font: Option<Box<Color>>,
#[serde(rename = "titleFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_size: Option<CornerRadiusUnion>,
#[serde(rename = "titleFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_style: Option<Box<Color>>,
#[serde(rename = "titleFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_weight: Option<FontWeightUnion>,
#[serde(rename = "titleLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_limit: Option<FontSize>,
#[serde(rename = "titleLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "titleOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "titleOrient")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_orient: Option<TitleOrientUnion>,
#[serde(rename = "titlePadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_padding: Option<CornerRadiusUnion>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub legend_type: Option<LegendType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub values: Option<Values>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zindex: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct TickCountTimeIntervalStep {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interval: Option<TimeInterval>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Scale {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub base: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bins: Option<ScaleBins>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clamp: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub constant: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain: Option<DomainUnion>,
#[serde(rename = "domainMax")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_max: Option<DomainM>,
#[serde(rename = "domainMid")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_mid: Option<CornerRadiusUnion>,
#[serde(rename = "domainMin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_min: Option<DomainM>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub exponent: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<ScaleInterpolate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub nice: Option<Nice>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub padding: Option<CornerRadiusUnion>,
#[serde(rename = "paddingInner")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub padding_inner: Option<CornerRadiusUnion>,
#[serde(rename = "paddingOuter")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub padding_outer: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub range: Option<ScaleRange>,
#[serde(rename = "rangeMax")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub range_max: Option<RangeM>,
#[serde(rename = "rangeMin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub range_min: Option<RangeM>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub reverse: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub round: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub scheme: Option<Scheme>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub scale_type: Option<ScaleType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zero: Option<Aria>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ScaleBinParams {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stop: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct DomainDateTime {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub date: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub day: Option<Day>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hours: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub milliseconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub minutes: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub month: Option<Month>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quarter: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub seconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub utc: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub year: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct DomainUnionWith {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encoding: Option<SingleDefUnitChannel>,
#[serde(rename = "unionWith")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub union_with: Option<Vec<SelectionInitInterval>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct DomainMaxDateTime {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub date: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub day: Option<Day>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hours: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub milliseconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub minutes: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub month: Option<Month>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quarter: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub seconds: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub utc: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub year: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gamma: Option<f64>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr_ref_type: Option<ExprRefType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct NiceTimeIntervalStep {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interval: Option<TimeInterval>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RangeClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SchemeParams {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub count: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<Vec<f64>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct EncodingSortField {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub op: Option<NonArgAggregateOp>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub order: RemovableValue<SortOrder>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encoding: Option<SortByChannel>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ColorClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<ColorCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_gradient_string_null_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalValueDefGradientStringNullExprRefValue>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalValueDefGradientStringNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalValueDefGradientStringNullExprRefValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ValueLinearGradient {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient: Option<Gradient>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stops: Option<Vec<GradientStop>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct GradientStop {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefGradientStringNullExprRefClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalValueDefGradientStringNullExprRefValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub conditional_value_def_gradient_string_null_expr_ref_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RowColumnEncodingFieldDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<LayoutAlign>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub center: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header: Option<Header>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<PurpleSortArray>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spacing: Option<f64>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row_column_encoding_field_def_type: Option<StandardType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Header {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "labelAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_align: Option<TitleAlignUnion>,
#[serde(rename = "labelAnchor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_anchor: Option<TitleAnchorEnum>,
#[serde(rename = "labelAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_angle: Option<f64>,
#[serde(rename = "labelBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_baseline: Option<TextBaseline>,
#[serde(rename = "labelColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_color: Option<Box<Color>>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "labelFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font: Option<Box<Color>>,
#[serde(rename = "labelFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_size: Option<CornerRadiusUnion>,
#[serde(rename = "labelFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_style: Option<Box<Color>>,
#[serde(rename = "labelFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_weight: Option<FontWeightUnion>,
#[serde(rename = "labelLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_limit: Option<CornerRadiusUnion>,
#[serde(rename = "labelLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "labelOrient")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_orient: Option<Orient>,
#[serde(rename = "labelPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_padding: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub labels: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orient>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "titleAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_align: Option<TitleAlignUnion>,
#[serde(rename = "titleAnchor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_anchor: Option<TitleAnchorEnum>,
#[serde(rename = "titleAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_angle: Option<f64>,
#[serde(rename = "titleBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_baseline: Option<TextBaseline>,
#[serde(rename = "titleColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_color: Option<Box<Color>>,
#[serde(rename = "titleFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font: Option<Box<Color>>,
#[serde(rename = "titleFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_size: Option<CornerRadiusUnion>,
#[serde(rename = "titleFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_style: Option<Box<Color>>,
#[serde(rename = "titleFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_weight: Option<FontWeightUnion>,
#[serde(rename = "titleLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_limit: Option<CornerRadiusUnion>,
#[serde(rename = "titleLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "titleOrient")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_orient: Option<Orient>,
#[serde(rename = "titlePadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_padding: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SortEncodingSortField {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub op: Option<NonArgAggregateOp>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub order: RemovableValue<SortOrder>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct DescriptionClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<DescriptionCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field_or_datum_def_with_condition_string_field_def_string_type: Option<StandardType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleConditionalValueDefStringExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleConditionalExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub conditional_expr_ref_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct TypedFieldDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub typed_field_def_type: Option<StandardType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FacetEncodingFieldDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<Box<VegaliteAlign>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bounds: Option<Box<Bounds>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub center: Option<Box<Center>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub columns: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header: Option<Header>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<PurpleSortArray>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spacing: Option<Box<Spacing>>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet_encoding_field_def_type: Option<StandardType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RowColNumber {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FillClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<ColorCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_gradient_string_null_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalValueDefGradientStringNullExprRefValue>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FillOpacityClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<AngleCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_number_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct HrefClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<DescriptionCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field_or_datum_def_with_condition_string_field_def_string_type: Option<StandardType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct KeyClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub typed_field_def_type: Option<StandardType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct LatitudeClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub lat_long_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Latitude2Class {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position2_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct LongitudeClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub lat_long_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Longitude2Class {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position2_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct OpacityClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<AngleCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_number_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct OrderFieldDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sort: Option<SortOrder>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order_field_def_type: Option<StandardType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct OrderDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sort: Option<SortOrder>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order_def_type: Option<StandardType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<OrderFieldDefCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalValueDefNumber {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefNumberClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RadiusClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stack: Option<Stack>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub polar_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Radius2Class {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position2_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct MarkPropDefStringNullTypeForShape {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<ShapeCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_string_null_type_for_shape_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalValueDefStringNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefStringNullExprRefClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub conditional_value_def_string_null_expr_ref_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SizeClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<AngleCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_number_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct StrokeClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<ColorCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_gradient_string_null_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalValueDefGradientStringNullExprRefValue>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct MarkPropDefNumber {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<StrokeDashCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_number_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<StrokeDashUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalValueDefNumberExprRefElement {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalValueDefNumberExprRefValueUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalSelectionValueDefNumberExprRefClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<StrokeDashUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub conditional_value_def_number_expr_ref_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct StrokeOpacityClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<AngleCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_number_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct StrokeWidthClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<AngleCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark_prop_def_number_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct TextDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<TextCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalPredicateValueDefTextExprRefText>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalValueDefTextExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Conditional {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub conditional_type: Option<StandardType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ThetaClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stack: Option<Stack>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub polar_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Theta2Class {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position2_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct StringFieldDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub string_field_def_type: Option<StandardType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FieldOrDatumDefWithConditionStringFieldDefString {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<FieldOrDatumDefWithConditionStringFieldDefStringCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field_or_datum_def_with_condition_string_field_def_string_type: Option<StandardType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FluffyConditionalValueDefStringExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FluffyConditionalExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<Box<ConditionalValueDefNumberExprRefSelectionComposition>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub legend: RemovableValue<Legend>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub conditional_expr_ref_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct UrlClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<DescriptionCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field_or_datum_def_with_condition_string_field_def_string_type: Option<StandardType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Box<Color>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct XClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub axis: RemovableValue<Axis>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub impute: Option<ImputeParams>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stack: Option<Stack>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Axis {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "bandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band_position: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain: Option<Aria>,
#[serde(rename = "domainCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_cap: Option<Cap>,
#[serde(rename = "domainColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_color: Option<Box<Color>>,
#[serde(rename = "domainDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_dash: Option<StrokeDashUnion>,
#[serde(rename = "domainDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "domainOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "domainWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid: Option<bool>,
#[serde(rename = "gridCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_cap: Option<Cap>,
#[serde(rename = "gridColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_color: Option<GridColorUnion>,
#[serde(rename = "gridDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_dash: Option<AxisGridDash>,
#[serde(rename = "gridDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_dash_offset: Option<GridDashOffsetUnion>,
#[serde(rename = "gridOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_opacity: Option<GridOpacityUnion>,
#[serde(rename = "gridWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_width: Option<GridWidthUnion>,
#[serde(rename = "labelAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_align: Option<ConditionalAxisPropertyAlignNull>,
#[serde(rename = "labelAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_angle: Option<LabelAngle>,
#[serde(rename = "labelBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_baseline: Option<PurpleTextBaseline>,
#[serde(rename = "labelBound")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_bound: Option<Label>,
#[serde(rename = "labelColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_color: Option<GridColorUnion>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "labelFlush")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_flush: Option<LabelFlush>,
#[serde(rename = "labelFlushOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_flush_offset: Option<CornerRadiusUnion>,
#[serde(rename = "labelFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font: Option<ConditionalAxisPropertyStringNull>,
#[serde(rename = "labelFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_size: Option<GridWidthUnion>,
#[serde(rename = "labelFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_style: Option<ConditionalAxisPropertyFontStyleNull>,
#[serde(rename = "labelFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_weight: Option<FontWeight>,
#[serde(rename = "labelLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_limit: Option<CornerRadiusUnion>,
#[serde(rename = "labelLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "labelOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_offset: Option<GridDashOffsetUnion>,
#[serde(rename = "labelOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_opacity: Option<GridDashOffsetUnion>,
#[serde(rename = "labelOverlap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_overlap: Option<LabelOverlapUnion>,
#[serde(rename = "labelPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_padding: Option<GridDashOffsetUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub labels: Option<Aria>,
#[serde(rename = "labelSeparation")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_separation: Option<CornerRadiusUnion>,
#[serde(rename = "maxExtent")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max_extent: Option<CornerRadiusUnion>,
#[serde(rename = "minExtent")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min_extent: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<TitleOrientUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub style: Option<LegendText>,
#[serde(rename = "tickBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_band: Option<TickBandUnion>,
#[serde(rename = "tickCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_cap: Option<Cap>,
#[serde(rename = "tickColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_color: Option<GridColorUnion>,
#[serde(rename = "tickCount")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_count: Option<TickCount>,
#[serde(rename = "tickDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_dash: Option<AxisTickDash>,
#[serde(rename = "tickDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_dash_offset: Option<GridDashOffsetUnion>,
#[serde(rename = "tickExtra")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_extra: Option<Aria>,
#[serde(rename = "tickMinStep")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_min_step: Option<CornerRadiusUnion>,
#[serde(rename = "tickOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_offset: Option<CornerRadiusUnion>,
#[serde(rename = "tickOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_opacity: Option<GridDashOffsetUnion>,
#[serde(rename = "tickRound")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_round: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ticks: Option<Aria>,
#[serde(rename = "tickSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_size: Option<GridWidthUnion>,
#[serde(rename = "tickWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_width: Option<GridWidthUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "titleAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_align: Option<TitleAlignUnion>,
#[serde(rename = "titleAnchor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_anchor: Option<TitleAnchorUnion>,
#[serde(rename = "titleAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_angle: Option<CornerRadiusUnion>,
#[serde(rename = "titleBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_baseline: Option<TextBaseline>,
#[serde(rename = "titleColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_color: Option<Box<Color>>,
#[serde(rename = "titleFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font: Option<Box<Color>>,
#[serde(rename = "titleFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_size: Option<FontSize>,
#[serde(rename = "titleFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_style: Option<Box<Color>>,
#[serde(rename = "titleFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_weight: Option<FontWeightUnion>,
#[serde(rename = "titleLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_limit: Option<FontSize>,
#[serde(rename = "titleLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "titleOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "titlePadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_padding: Option<CornerRadiusUnion>,
#[serde(rename = "titleX")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_x: Option<CornerRadiusUnion>,
#[serde(rename = "titleY")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_y: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub translate: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub values: Option<Values>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zindex: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct GridColorExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<ConditionUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefColorNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<TentacledConditionalPredicateValueDefNumberNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Vec<f64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefNumberNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Vec<f64>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleConditionalPredicateValueDefNumberNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Vec<f64>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct GridDashOffsetExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<StickyConditionalPredicateValueDefNumberNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefNumberNullExprRefElement {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FluffyConditionalPredicateValueDefNumberNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct GridOpacityExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<StickyConditionalPredicateValueDefNumberNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct GridWidthExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<StickyConditionalPredicateValueDefNumberNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FluffyExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<ExprRefCondition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Align>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefAlignNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Align>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionCondition {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Align>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct TentacledExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<ExprRefConditionUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Baseline>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefTextBaselineNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Baseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionConditionClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Baseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct StickyExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<FluffyConditionalPredicateValueDefStringNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefStringNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleConditionalPredicateValueDefStringNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct IndigoExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<FluffyConditionalPredicateValueDefFontStyleNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefFontStyleNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleConditionalPredicateValueDefFontStyleNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct IndecentExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<FluffyConditionalPredicateValueDefFontWeightNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ValueUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ConditionalPredicateValueDefFontWeightNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ValueUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleConditionalPredicateValueDefFontWeightNullExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub test: Option<PredicateCompositionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<ValueUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct HilariousExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<TentacledConditionalPredicateValueDefNumberNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Vec<f64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ImputeParams {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub frame: Option<Vec<Option<f64>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub keyvals: Option<Keyvals>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub method: Option<ImputeParamsMethod>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ImputeSequence {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stop: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct X2Class {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position2_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct XErrorClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct XError2Class {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct YClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub axis: RemovableValue<Axis>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<DescriptionBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub impute: Option<ImputeParams>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub scale: RemovableValue<Scale>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<SortUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stack: Option<Stack>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Y2Class {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub datum: Option<PrimitiveValue>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position2_def_type: Option<Type>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Latitude2Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct YErrorClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct YError2Class {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Facet {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header: Option<Header>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<PurpleSortArray>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet_type: Option<StandardType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<FacetFieldDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row: Option<FacetFieldDef>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FacetFieldDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<Field>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header: Option<Header>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<PurpleSortArray>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet_field_def_type: Option<StandardType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Step {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct LayerElement {
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub data: RemovableValue<UrlData>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encoding: Option<LayerEncoding>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub layer: Option<Vec<LayerElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub projection: Option<Box<Projection>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<Box<Resolve>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title: Option<TitleUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub transform: Option<Vec<Transform>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub view: Option<Box<ViewBackground>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark: Option<AnyMark>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<HashMap<String, SelectionDef>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct LayerEncoding {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<AngleClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<ColorClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<DescriptionClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub detail: Option<Detail>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<FillClass>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<FillOpacityClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<HrefClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub key: Option<KeyClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub latitude: Option<LatitudeClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub latitude2: Option<Latitude2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub longitude: Option<LongitudeClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub longitude2: Option<Longitude2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<OpacityClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<Order>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<RadiusClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<Radius2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<MarkPropDefStringNullTypeForShape>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<SizeClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<StrokeClass>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<MarkPropDefNumber>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<StrokeOpacityClass>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<StrokeWidthClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<TextDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<ThetaClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<Theta2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<EncodingTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<UrlClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<X2Class>,
#[serde(rename = "xError")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x_error: Option<XErrorClass>,
#[serde(rename = "xError2")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x_error2: Option<XError2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<Y2Class>,
#[serde(rename = "yError")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y_error: Option<YErrorClass>,
#[serde(rename = "yError2")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y_error2: Option<YError2Class>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Def {
#[serde(rename = "box")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub def_box: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clip: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<MarkConfigExprOrSignalRefColor>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<MarkDefExtent>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub median: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orientation>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outliers: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub rule: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ticks: Option<DefBox>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub def_type: Option<Mark>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub thickness: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub borders: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(rename = "bandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band_size: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(rename = "binSpacing")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin_spacing: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(rename = "continuousBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub continuous_band_size: Option<f64>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusEnd")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_end: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(rename = "discreteBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub discrete_band_size: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<MarkConfigExprOrSignalRefFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line: Option<Line>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub point: Option<PointUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(rename = "radius2Offset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2_offset: Option<CornerRadiusUnion>,
#[serde(rename = "radiusOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius_offset: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<MarkConfigExprOrSignalRefFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub style: Option<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(rename = "theta2Offset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2_offset: Option<CornerRadiusUnion>,
#[serde(rename = "thetaOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta_offset: Option<CornerRadiusUnion>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<MarkConfigExprOrSignalRefTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(rename = "x2Offset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2_offset: Option<CornerRadiusUnion>,
#[serde(rename = "xOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x_offset: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
#[serde(rename = "y2Offset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2_offset: Option<CornerRadiusUnion>,
#[serde(rename = "yOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y_offset: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct MarkConfigExprOrSignalRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<MarkConfigExprOrSignalRefColor>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(rename = "endAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<MarkConfigExprOrSignalRefFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orientation>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(rename = "startAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<MarkConfigExprOrSignalRefFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<MarkConfigExprOrSignalRefTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleLinearGradient {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient: Option<Gradient>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stops: Option<Vec<GradientStop>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FluffyLinearGradient {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient: Option<Gradient>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stops: Option<Vec<GradientStop>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleTooltipContent {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub content: Option<Content>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct OverlayMarkDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clip: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<MarkConfigExprOrSignalRefColor>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(rename = "endAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<MarkConfigExprOrSignalRefFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orientation>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(rename = "radius2Offset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2_offset: Option<CornerRadiusUnion>,
#[serde(rename = "radiusOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius_offset: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(rename = "startAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<MarkConfigExprOrSignalRefFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub style: Option<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(rename = "theta2Offset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2_offset: Option<CornerRadiusUnion>,
#[serde(rename = "thetaOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta_offset: Option<CornerRadiusUnion>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<MarkConfigExprOrSignalRefTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(rename = "x2Offset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2_offset: Option<CornerRadiusUnion>,
#[serde(rename = "xOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x_offset: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
#[serde(rename = "y2Offset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2_offset: Option<CornerRadiusUnion>,
#[serde(rename = "yOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y_offset: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Projection {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub center: Option<Vec<f64>>,
#[serde(rename = "clipAngle")]
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub clip_angle: RemovableValue<f64>,
#[serde(rename = "clipExtent")]
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub clip_extent: RemovableValue<Vec<Vec<f64>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub coefficient: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub distance: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<Vec<Vec<f64>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fit: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fraction: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub lobes: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub parallel: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub parallels: Option<Vec<f64>>,
#[serde(rename = "pointRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub point_radius: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub precision: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ratio: Option<f64>,
#[serde(rename = "reflectX")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub reflect_x: Option<bool>,
#[serde(rename = "reflectY")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub reflect_y: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub rotate: Option<Vec<f64>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub scale: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<Vec<f64>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spacing: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tilt: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub translate: Option<Vec<f64>>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub projection_type: Option<ProjectionType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Resolve {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis: Option<AxisResolveMap>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub legend: Option<LegendResolveMap>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub scale: Option<ScaleResolveMap>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct AxisResolveMap {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<ResolveMode>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct LegendResolveMap {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<ResolveMode>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<ResolveMode>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<ResolveMode>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<ResolveMode>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<ResolveMode>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ScaleResolveMap {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<ResolveMode>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<ResolveMode>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<ResolveMode>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<ResolveMode>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<ResolveMode>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<ResolveMode>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SelectionDef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bind: Option<BindUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clear: Option<ClearUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub empty: Option<Empty>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encodings: Option<Vec<SingleDefUnitChannel>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fields: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub init: Option<Init>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub nearest: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub on: Option<OnUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<SelectionResolution>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection_def_type: Option<SelectionDefType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub toggle: Option<Translate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark: Option<BrushConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub translate: Option<Translate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zoom: Option<Translate>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct PurpleBinding {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub debounce: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub element: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub input: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub binding_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub labels: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub options: Option<Vec<Option<serde_json::Value>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub autocomplete: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub placeholder: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub between: Option<Vec<Stream>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub consume: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filter: Option<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub markname: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub marktype: Option<MarkType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub source: Option<Source>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub throttle: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stream: Option<Stream>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub merge: Option<Vec<Stream>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Stream {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub between: Option<Vec<Stream>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub consume: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub debounce: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filter: Option<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub markname: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub marktype: Option<MarkType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub source: Option<Source>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub throttle: Option<f64>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stream_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stream: Option<Box<Stream>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub merge: Option<Vec<Stream>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ClearDerivedStream {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub between: Option<Vec<Stream>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub consume: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub debounce: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filter: Option<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub markname: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub marktype: Option<MarkType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub source: Option<Source>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub throttle: Option<f64>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ed_stream_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stream: Option<Stream>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub merge: Option<Vec<Stream>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct BrushConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<Cursor>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<String>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<String>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct OnDerivedStream {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub between: Option<Vec<Stream>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub consume: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub debounce: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filter: Option<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub markname: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub marktype: Option<MarkType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub source: Option<Source>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub throttle: Option<f64>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ed_stream_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stream: Option<Stream>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub merge: Option<Vec<Stream>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct TitleParams {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<Align>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub anchor: Option<TitleAnchorEnum>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<Baseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub frame: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<FontSize>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<TitleParamsOrient>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub style: Option<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle: Option<LegendText>,
#[serde(rename = "subtitleColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_color: Option<Box<Color>>,
#[serde(rename = "subtitleFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_font: Option<Box<Color>>,
#[serde(rename = "subtitleFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_font_size: Option<FontSize>,
#[serde(rename = "subtitleFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_font_style: Option<Box<Color>>,
#[serde(rename = "subtitleFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_font_weight: Option<FontWeightUnion>,
#[serde(rename = "subtitleLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "subtitlePadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_padding: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zindex: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Transform {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Vec<AggregatedFieldDef>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub groupby: Option<Vec<String>>,
#[serde(rename = "as")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub transform_as: Option<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub calculate: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bandwidth: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub counts: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cumulative: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub density: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<Vec<f64>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub maxsteps: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub minsteps: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub steps: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filter: Option<ConditionalValueDefNumberExprRefPredicateComposition>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub flatten: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fold: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub frame: Option<Vec<Option<f64>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub impute: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub keyvals: Option<Keyvals>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub method: Option<TransformMethod>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub joinaggregate: Option<Vec<JoinAggregateFieldDef>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub loess: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub on: Option<String>,
#[serde(rename = "default")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub transform_default: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub from: Option<Lookup>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub lookup: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub probs: Option<Vec<f64>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quantile: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub params: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub regression: Option<String>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sample: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<StackOffset>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sort: Option<Vec<SortField>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stack: Option<String>,
#[serde(rename = "ignorePeers")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ignore_peers: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub window: Option<Vec<WindowFieldDef>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub op: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pivot: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct AggregatedFieldDef {
#[serde(rename = "as")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregated_field_def_as: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub op: Option<AggregateOp>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Lookup {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub data: Option<Data>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fields: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Data {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<DataFormat>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub values: Option<UrlDataInlineDataset>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sequence: Option<SequenceParams>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub sphere: Option<SphereUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub graticule: Option<Graticule>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct JoinAggregateFieldDef {
#[serde(rename = "as")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub join_aggregate_field_def_as: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub op: Option<AggregateOp>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SortField {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub order: RemovableValue<SortOrder>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct WindowFieldDef {
#[serde(rename = "as")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub window_field_def_as: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub op: Option<Op>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub param: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ViewBackground {
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<Cursor>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<Box<Color>>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub stroke: RemovableValue<Color>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub style: Option<LegendText>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RepeatMapping {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub layer: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Spec {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<Box<VegaliteAlign>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bounds: Option<Box<Bounds>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub center: Option<Box<Center>>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub data: RemovableValue<UrlData>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encoding: Option<Box<EdEncoding>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark: Option<AnyMark>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub projection: Option<Box<Projection>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<Box<Resolve>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<HashMap<String, SelectionDef>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spacing: Option<Box<Spacing>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title: Option<TitleUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub transform: Option<Vec<Transform>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub view: Option<Box<ViewBackground>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub layer: Option<Vec<LayerElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub columns: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub repeat: Option<Box<RepeatUnion>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spec: Option<NormalizedSpecSpec>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet: Option<FacetFieldName>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub concat: Option<Vec<Spec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub vconcat: Option<Vec<Spec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hconcat: Option<Vec<Spec>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct NormalizedSpecSpec {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<Box<VegaliteAlign>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bounds: Option<Box<Bounds>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub center: Option<Box<Center>>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub data: RemovableValue<UrlData>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encoding: Option<SpecEncoding>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark: Option<AnyMark>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub projection: Option<Box<Projection>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<Box<Resolve>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<HashMap<String, SelectionDef>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spacing: Option<Box<Spacing>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title: Option<TitleUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub transform: Option<Vec<Transform>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub view: Option<Box<ViewBackground>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub layer: Option<Vec<LayerElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub columns: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub repeat: Option<Box<RepeatUnion>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spec: Option<Box<NormalizedSpecSpec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet: Option<FacetFieldName>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub concat: Option<Vec<Spec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub vconcat: Option<Vec<Spec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hconcat: Option<Vec<Spec>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FacetFieldName {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header: Option<Header>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<FluffySortArray>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet_field_name_type: Option<StandardType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<FacetFieldDefFieldName>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row: Option<FacetFieldDefFieldName>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FacetFieldDefFieldName {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aggregate: Option<Aggregate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin: Option<AngleBin>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header: Option<Header>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub sort: RemovableValue<FluffySortArray>,
#[serde(rename = "timeUnit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit: Option<TimeUnitUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet_field_def_field_name_type: Option<StandardType>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct EncodingSortFieldFieldName {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub op: Option<NonArgAggregateOp>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub order: RemovableValue<SortOrder>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SpecEncoding {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<AngleClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<ColorClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column: Option<RowColumnEncodingFieldDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<DescriptionClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub detail: Option<Detail>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet: Option<FacetEncodingFieldDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<FillClass>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<FillOpacityClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<HrefClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub key: Option<KeyClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub latitude: Option<LatitudeClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub latitude2: Option<Latitude2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub longitude: Option<LongitudeClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub longitude2: Option<Longitude2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<OpacityClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<Order>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<RadiusClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<Radius2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row: Option<RowColumnEncodingFieldDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<MarkPropDefStringNullTypeForShape>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<SizeClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<StrokeClass>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<MarkPropDefNumber>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<StrokeOpacityClass>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<StrokeWidthClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<TextDef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<ThetaClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<Theta2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<EncodingTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<UrlClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<X2Class>,
#[serde(rename = "xError")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x_error: Option<XErrorClass>,
#[serde(rename = "xError2")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x_error2: Option<XError2Class>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YClass>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<Y2Class>,
#[serde(rename = "yError")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y_error: Option<YErrorClass>,
#[serde(rename = "yError2")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y_error2: Option<YError2Class>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Config {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub arc: Option<RectConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub area: Option<AreaConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub autosize: Option<Box<Autosize>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis: Option<AxisConfig>,
#[serde(rename = "axisBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_band: Option<AxisConfig>,
#[serde(rename = "axisBottom")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_bottom: Option<AxisConfig>,
#[serde(rename = "axisDiscrete")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_discrete: Option<AxisConfig>,
#[serde(rename = "axisLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_left: Option<AxisConfig>,
#[serde(rename = "axisPoint")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_point: Option<AxisConfig>,
#[serde(rename = "axisQuantitative")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_quantitative: Option<AxisConfig>,
#[serde(rename = "axisRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_right: Option<AxisConfig>,
#[serde(rename = "axisTemporal")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_temporal: Option<AxisConfig>,
#[serde(rename = "axisTop")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_top: Option<AxisConfig>,
#[serde(rename = "axisX")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_x: Option<AxisConfig>,
#[serde(rename = "axisXBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_x_band: Option<AxisConfig>,
#[serde(rename = "axisXDiscrete")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_x_discrete: Option<AxisConfig>,
#[serde(rename = "axisXPoint")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_x_point: Option<AxisConfig>,
#[serde(rename = "axisXQuantitative")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_x_quantitative: Option<AxisConfig>,
#[serde(rename = "axisXTemporal")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_x_temporal: Option<AxisConfig>,
#[serde(rename = "axisY")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_y: Option<AxisConfig>,
#[serde(rename = "axisYBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_y_band: Option<AxisConfig>,
#[serde(rename = "axisYDiscrete")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_y_discrete: Option<AxisConfig>,
#[serde(rename = "axisYPoint")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_y_point: Option<AxisConfig>,
#[serde(rename = "axisYQuantitative")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_y_quantitative: Option<AxisConfig>,
#[serde(rename = "axisYTemporal")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub axis_y_temporal: Option<AxisConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub background: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bar: Option<BarConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub boxplot: Option<BoxPlotConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub circle: Option<MarkConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub concat: Option<CompositionConfig>,
#[serde(rename = "countTitle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub count_title: Option<String>,
#[serde(rename = "customFormatTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub custom_format_types: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub errorband: Option<ErrorBandConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub errorbar: Option<ErrorBarConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet: Option<CompositionConfig>,
#[serde(rename = "fieldTitle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub field_title: Option<FieldTitle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub geoshape: Option<MarkConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header: Option<HeaderConfig>,
#[serde(rename = "headerColumn")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header_column: Option<HeaderConfig>,
#[serde(rename = "headerFacet")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header_facet: Option<HeaderConfig>,
#[serde(rename = "headerRow")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub header_row: Option<HeaderConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub image: Option<RectConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub legend: Option<LegendConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line: Option<LineConfig>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark: Option<MarkConfig>,
#[serde(rename = "numberFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub number_format: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub padding: Option<Box<Padding>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub params: Option<Vec<Parameter>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub point: Option<MarkConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub projection: Option<Box<Projection>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub range: Option<HashMap<String, RangeValue>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub rect: Option<RectConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub rule: Option<MarkConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub scale: Option<ScaleConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<SelectionConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub square: Option<MarkConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub style: Option<HashMap<String, StyleValue>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<MarkConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick: Option<TickConfig>,
#[serde(rename = "timeFormat")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_format: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title: Option<BaseTitleNoValueRefs>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub trail: Option<LineConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub view: Option<ViewConfig>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RectConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(rename = "binSpacing")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin_spacing: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<MarkConfigExprOrSignalRefColor>,
#[serde(rename = "continuousBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub continuous_band_size: Option<f64>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(rename = "discreteBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub discrete_band_size: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(rename = "endAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<MarkConfigExprOrSignalRefFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orientation>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(rename = "startAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<MarkConfigExprOrSignalRefFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<MarkConfigExprOrSignalRefTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct AreaConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<MarkConfigExprOrSignalRefColor>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(rename = "endAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<MarkConfigExprOrSignalRefFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line: Option<Line>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orientation>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub point: Option<PointUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(rename = "startAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<MarkConfigExprOrSignalRefFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<MarkConfigExprOrSignalRefTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct AxisConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "bandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band_position: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub disable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain: Option<Aria>,
#[serde(rename = "domainCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_cap: Option<Cap>,
#[serde(rename = "domainColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_color: Option<Box<Color>>,
#[serde(rename = "domainDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_dash: Option<StrokeDashUnion>,
#[serde(rename = "domainDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "domainOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "domainWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid: Option<bool>,
#[serde(rename = "gridCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_cap: Option<Cap>,
#[serde(rename = "gridColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_color: Option<GridColorUnion>,
#[serde(rename = "gridDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_dash: Option<AxisBandGridDash>,
#[serde(rename = "gridDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_dash_offset: Option<GridDashOffsetUnion>,
#[serde(rename = "gridOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_opacity: Option<GridOpacityUnion>,
#[serde(rename = "gridWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_width: Option<GridWidthUnion>,
#[serde(rename = "labelAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_align: Option<ConditionalAxisPropertyAlignNull>,
#[serde(rename = "labelAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_angle: Option<LabelAngle>,
#[serde(rename = "labelBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_baseline: Option<PurpleTextBaseline>,
#[serde(rename = "labelBound")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_bound: Option<Label>,
#[serde(rename = "labelColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_color: Option<GridColorUnion>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "labelFlush")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_flush: Option<LabelFlush>,
#[serde(rename = "labelFlushOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_flush_offset: Option<CornerRadiusUnion>,
#[serde(rename = "labelFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font: Option<ConditionalAxisPropertyStringNull>,
#[serde(rename = "labelFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_size: Option<GridWidthUnion>,
#[serde(rename = "labelFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_style: Option<ConditionalAxisPropertyFontStyleNull>,
#[serde(rename = "labelFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_weight: Option<FontWeight>,
#[serde(rename = "labelLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_limit: Option<CornerRadiusUnion>,
#[serde(rename = "labelLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "labelOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_offset: Option<GridDashOffsetUnion>,
#[serde(rename = "labelOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_opacity: Option<GridDashOffsetUnion>,
#[serde(rename = "labelOverlap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_overlap: Option<LabelOverlapUnion>,
#[serde(rename = "labelPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_padding: Option<GridDashOffsetUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub labels: Option<Aria>,
#[serde(rename = "labelSeparation")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_separation: Option<CornerRadiusUnion>,
#[serde(rename = "maxExtent")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max_extent: Option<CornerRadiusUnion>,
#[serde(rename = "minExtent")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min_extent: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<TitleOrientUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub style: Option<LegendText>,
#[serde(rename = "tickBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_band: Option<TickBandUnion>,
#[serde(rename = "tickCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_cap: Option<Cap>,
#[serde(rename = "tickColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_color: Option<GridColorUnion>,
#[serde(rename = "tickCount")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_count: Option<TickCount>,
#[serde(rename = "tickDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_dash: Option<AxisBandTickDash>,
#[serde(rename = "tickDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_dash_offset: Option<GridDashOffsetUnion>,
#[serde(rename = "tickExtra")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_extra: Option<Aria>,
#[serde(rename = "tickMinStep")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_min_step: Option<CornerRadiusUnion>,
#[serde(rename = "tickOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_offset: Option<CornerRadiusUnion>,
#[serde(rename = "tickOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_opacity: Option<GridDashOffsetUnion>,
#[serde(rename = "tickRound")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_round: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ticks: Option<Aria>,
#[serde(rename = "tickSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_size: Option<GridWidthUnion>,
#[serde(rename = "tickWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_width: Option<GridWidthUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "titleAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_align: Option<TitleAlignUnion>,
#[serde(rename = "titleAnchor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_anchor: Option<TitleAnchorUnion>,
#[serde(rename = "titleAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_angle: Option<CornerRadiusUnion>,
#[serde(rename = "titleBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_baseline: Option<TextBaseline>,
#[serde(rename = "titleColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_color: Option<Box<Color>>,
#[serde(rename = "titleFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font: Option<Box<Color>>,
#[serde(rename = "titleFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_size: Option<FontSize>,
#[serde(rename = "titleFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_style: Option<Box<Color>>,
#[serde(rename = "titleFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_weight: Option<FontWeightUnion>,
#[serde(rename = "titleLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_limit: Option<FontSize>,
#[serde(rename = "titleLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "titleOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "titlePadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_padding: Option<CornerRadiusUnion>,
#[serde(rename = "titleX")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_x: Option<CornerRadiusUnion>,
#[serde(rename = "titleY")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_y: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub translate: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub values: Option<Values>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zindex: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct AmbitiousExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<TentacledConditionalPredicateValueDefNumberNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Vec<f64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct CunningExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub condition: Option<TentacledConditionalPredicateValueDefNumberNullExprRef>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<Vec<f64>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct BarConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(rename = "binSpacing")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin_spacing: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<MarkConfigExprOrSignalRefColor>,
#[serde(rename = "continuousBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub continuous_band_size: Option<f64>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusEnd")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_end: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(rename = "discreteBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub discrete_band_size: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(rename = "endAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<MarkConfigExprOrSignalRefFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orientation>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(rename = "startAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<MarkConfigExprOrSignalRefFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<MarkConfigExprOrSignalRefTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct BoxPlotConfig {
#[serde(rename = "box")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub box_plot_config_box: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<BoxplotExtent>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub median: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outliers: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub rule: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ticks: Option<DefBox>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct MarkConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<MarkConfigExprOrSignalRefColor>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(rename = "endAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<MarkConfigExprOrSignalRefFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orientation>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(rename = "startAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<MarkConfigExprOrSignalRefFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<MarkConfigExprOrSignalRefTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct CompositionConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub columns: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spacing: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ErrorBandConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub borders: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<ErrorbandExtent>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<Interpolate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ErrorBarConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<ErrorbandExtent>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub rule: Option<DefBox>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub thickness: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ticks: Option<DefBox>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct HeaderConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(rename = "labelAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_align: Option<TitleAlignUnion>,
#[serde(rename = "labelAnchor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_anchor: Option<TitleAnchorEnum>,
#[serde(rename = "labelAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_angle: Option<f64>,
#[serde(rename = "labelBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_baseline: Option<TextBaseline>,
#[serde(rename = "labelColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_color: Option<Box<Color>>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "labelFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font: Option<Box<Color>>,
#[serde(rename = "labelFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_size: Option<CornerRadiusUnion>,
#[serde(rename = "labelFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_style: Option<Box<Color>>,
#[serde(rename = "labelFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_weight: Option<FontWeightUnion>,
#[serde(rename = "labelLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_limit: Option<CornerRadiusUnion>,
#[serde(rename = "labelLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "labelOrient")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_orient: Option<Orient>,
#[serde(rename = "labelPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_padding: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub labels: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orient>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<serde_json::Value>,
#[serde(rename = "titleAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_align: Option<TitleAlignUnion>,
#[serde(rename = "titleAnchor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_anchor: Option<TitleAnchorEnum>,
#[serde(rename = "titleAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_angle: Option<f64>,
#[serde(rename = "titleBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_baseline: Option<TextBaseline>,
#[serde(rename = "titleColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_color: Option<Box<Color>>,
#[serde(rename = "titleFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font: Option<Box<Color>>,
#[serde(rename = "titleFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_size: Option<CornerRadiusUnion>,
#[serde(rename = "titleFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_style: Option<Box<Color>>,
#[serde(rename = "titleFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_weight: Option<FontWeightUnion>,
#[serde(rename = "titleLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_limit: Option<CornerRadiusUnion>,
#[serde(rename = "titleLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "titleOrient")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_orient: Option<Orient>,
#[serde(rename = "titlePadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_padding: Option<CornerRadiusUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct LegendConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "clipHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clip_height: Option<CornerRadiusUnion>,
#[serde(rename = "columnPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub column_padding: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub columns: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub direction: Option<Orientation>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub disable: Option<bool>,
#[serde(rename = "fillColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_color: Option<Box<Color>>,
#[serde(rename = "gradientDirection")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_direction: Option<Direction>,
#[serde(rename = "gradientHorizontalMaxLength")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_horizontal_max_length: Option<f64>,
#[serde(rename = "gradientHorizontalMinLength")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_horizontal_min_length: Option<f64>,
#[serde(rename = "gradientLabelLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_label_limit: Option<CornerRadiusUnion>,
#[serde(rename = "gradientLabelOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_label_offset: Option<CornerRadiusUnion>,
#[serde(rename = "gradientLength")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_length: Option<FontSize>,
#[serde(rename = "gradientOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "gradientStrokeColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_stroke_color: Option<Box<Color>>,
#[serde(rename = "gradientStrokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_stroke_width: Option<FontSize>,
#[serde(rename = "gradientThickness")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_thickness: Option<FontSize>,
#[serde(rename = "gradientVerticalMaxLength")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_vertical_max_length: Option<f64>,
#[serde(rename = "gradientVerticalMinLength")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient_vertical_min_length: Option<f64>,
#[serde(rename = "gridAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_align: Option<GridAlign>,
#[serde(rename = "labelAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_align: Option<TitleAlignUnion>,
#[serde(rename = "labelBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_baseline: Option<TextBaseline>,
#[serde(rename = "labelColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_color: Option<Box<Color>>,
#[serde(rename = "labelFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font: Option<Box<Color>>,
#[serde(rename = "labelFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_size: Option<FontSize>,
#[serde(rename = "labelFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_style: Option<Box<Color>>,
#[serde(rename = "labelFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_weight: Option<FontWeightUnion>,
#[serde(rename = "labelLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_limit: Option<CornerRadiusUnion>,
#[serde(rename = "labelOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_offset: Option<CornerRadiusUnion>,
#[serde(rename = "labelOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "labelOverlap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_overlap: Option<LabelOverlapUnion>,
#[serde(rename = "labelPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_padding: Option<CornerRadiusUnion>,
#[serde(rename = "labelSeparation")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_separation: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub layout: Option<BackgroundExprRef>,
#[serde(rename = "legendX")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub legend_x: Option<CornerRadiusUnion>,
#[serde(rename = "legendY")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub legend_y: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<LegendOrient>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub padding: Option<CornerRadiusUnion>,
#[serde(rename = "rowPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub row_padding: Option<CornerRadiusUnion>,
#[serde(rename = "strokeColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_color: Option<Box<Color>>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<CornerRadiusUnion>,
#[serde(rename = "symbolBaseFillColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_base_fill_color: Option<Box<Color>>,
#[serde(rename = "symbolBaseStrokeColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_base_stroke_color: Option<Box<Color>>,
#[serde(rename = "symbolDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_dash: Option<StrokeDashUnion>,
#[serde(rename = "symbolDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "symbolDirection")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_direction: Option<Direction>,
#[serde(rename = "symbolFillColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_fill_color: Option<Box<Color>>,
#[serde(rename = "symbolLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_limit: Option<CornerRadiusUnion>,
#[serde(rename = "symbolOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_offset: Option<CornerRadiusUnion>,
#[serde(rename = "symbolOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "symbolSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_size: Option<FontSize>,
#[serde(rename = "symbolStrokeColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_stroke_color: Option<Box<Color>>,
#[serde(rename = "symbolStrokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_stroke_width: Option<FontSize>,
#[serde(rename = "symbolType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub symbol_type: Option<Box<Color>>,
#[serde(rename = "tickCount")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_count: Option<TickCount>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<serde_json::Value>,
#[serde(rename = "titleAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_align: Option<TitleAlignUnion>,
#[serde(rename = "titleAnchor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_anchor: Option<TitleAnchorUnion>,
#[serde(rename = "titleBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_baseline: Option<TextBaseline>,
#[serde(rename = "titleColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_color: Option<Box<Color>>,
#[serde(rename = "titleFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font: Option<Box<Color>>,
#[serde(rename = "titleFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_size: Option<CornerRadiusUnion>,
#[serde(rename = "titleFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_style: Option<Box<Color>>,
#[serde(rename = "titleFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_weight: Option<FontWeightUnion>,
#[serde(rename = "titleLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_limit: Option<FontSize>,
#[serde(rename = "titleLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "titleOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "titleOrient")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_orient: Option<TitleOrientUnion>,
#[serde(rename = "titlePadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_padding: Option<CornerRadiusUnion>,
#[serde(rename = "unselectedOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub unselected_opacity: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zindex: Option<FontSize>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct LineConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<MarkConfigExprOrSignalRefColor>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(rename = "endAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<MarkConfigExprOrSignalRefFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orientation>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub point: Option<PointUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(rename = "startAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<MarkConfigExprOrSignalRefFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<MarkConfigExprOrSignalRefTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct MagentaExprRef {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bottom: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub left: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub right: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub top: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Parameter {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bind: Option<Binding>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub value: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct Binding {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub debounce: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub element: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub input: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub binding_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub labels: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub options: Option<Vec<Option<serde_json::Value>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub autocomplete: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub placeholder: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct RangeRange {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub count: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub extent: Option<Vec<f64>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub scheme: Option<RangeText>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ScaleConfig {
#[serde(rename = "bandPaddingInner")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band_padding_inner: Option<CornerRadiusUnion>,
#[serde(rename = "bandPaddingOuter")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band_padding_outer: Option<CornerRadiusUnion>,
#[serde(rename = "barBandPaddingInner")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bar_band_padding_inner: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clamp: Option<Aria>,
#[serde(rename = "continuousPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub continuous_padding: Option<CornerRadiusUnion>,
#[serde(rename = "maxBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max_band_size: Option<f64>,
#[serde(rename = "maxFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max_font_size: Option<f64>,
#[serde(rename = "maxOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max_opacity: Option<f64>,
#[serde(rename = "maxSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max_size: Option<f64>,
#[serde(rename = "maxStrokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max_stroke_width: Option<f64>,
#[serde(rename = "minBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min_band_size: Option<f64>,
#[serde(rename = "minFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min_font_size: Option<f64>,
#[serde(rename = "minOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min_opacity: Option<f64>,
#[serde(rename = "minSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min_size: Option<f64>,
#[serde(rename = "minStrokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min_stroke_width: Option<f64>,
#[serde(rename = "pointPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub point_padding: Option<CornerRadiusUnion>,
#[serde(rename = "quantileCount")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quantile_count: Option<f64>,
#[serde(rename = "quantizeCount")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub quantize_count: Option<f64>,
#[serde(rename = "rectBandPaddingInner")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub rect_band_padding_inner: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub round: Option<Aria>,
#[serde(rename = "useUnaggregatedDomain")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub use_unaggregated_domain: Option<bool>,
#[serde(rename = "xReverse")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x_reverse: Option<Aria>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SelectionConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interval: Option<IntervalSelectionConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub multi: Option<MultiSelectionConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub single: Option<SingleSelectionConfig>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct IntervalSelectionConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bind: Option<Bind>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clear: Option<ClearUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub empty: Option<Empty>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encodings: Option<Vec<SingleDefUnitChannel>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fields: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub init: Option<HashMap<String, Vec<SelectionInitInterval>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark: Option<BrushConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub on: Option<OnUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<SelectionResolution>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub translate: Option<Translate>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zoom: Option<Translate>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct MultiSelectionConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bind: Option<LegendBinding>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clear: Option<ClearUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub empty: Option<Empty>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encodings: Option<Vec<SingleDefUnitChannel>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fields: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub init: Option<Vec<HashMap<String, Option<SelectionInit>>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub nearest: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub on: Option<OnUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<SelectionResolution>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub toggle: Option<Translate>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct LegendStreamBinding {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub legend: Option<LegendUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct SingleSelectionConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bind: Option<SingleBind>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clear: Option<ClearUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub empty: Option<Empty>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encodings: Option<Vec<SingleDefUnitChannel>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fields: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub init: Option<HashMap<String, Option<SelectionInit>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub nearest: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub on: Option<OnUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<SelectionResolution>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FluffyBinding {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub debounce: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub element: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub input: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub binding_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub labels: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub options: Option<Vec<Option<serde_json::Value>>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub autocomplete: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub placeholder: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub between: Option<Vec<Stream>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub consume: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filter: Option<LegendText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub markname: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub marktype: Option<MarkType>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub source: Option<Source>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub throttle: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stream: Option<Stream>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub merge: Option<Vec<Stream>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct StyleValue {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(rename = "binSpacing")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bin_spacing: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<StyleColor>,
#[serde(rename = "continuousBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub continuous_band_size: Option<f64>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(rename = "discreteBandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub discrete_band_size: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(rename = "endAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<StyleFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<StyleOrient>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(rename = "startAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<StyleFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<StyleTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line: Option<Line>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub point: Option<PointUnion>,
#[serde(rename = "cornerRadiusEnd")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_end: Option<CornerRadiusUnion>,
#[serde(rename = "bandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band_size: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub thickness: Option<f64>,
#[serde(rename = "bandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band_position: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain: Option<Aria>,
#[serde(rename = "domainCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_cap: Option<Cap>,
#[serde(rename = "domainColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_color: Option<Box<Color>>,
#[serde(rename = "domainDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_dash: Option<StrokeDashUnion>,
#[serde(rename = "domainDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "domainOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "domainWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub domain_width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format: Option<Format>,
#[serde(rename = "formatType")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub format_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid: Option<bool>,
#[serde(rename = "gridCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_cap: Option<Cap>,
#[serde(rename = "gridColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_color: Option<GridColorUnion>,
#[serde(rename = "gridDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_dash: Option<AxisGridDash>,
#[serde(rename = "gridDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_dash_offset: Option<GridDashOffsetUnion>,
#[serde(rename = "gridOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_opacity: Option<GridOpacityUnion>,
#[serde(rename = "gridWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub grid_width: Option<GridWidthUnion>,
#[serde(rename = "labelAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_align: Option<ConditionalAxisPropertyAlignNull>,
#[serde(rename = "labelAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_angle: Option<LabelAngle>,
#[serde(rename = "labelBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_baseline: Option<PurpleTextBaseline>,
#[serde(rename = "labelBound")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_bound: Option<Label>,
#[serde(rename = "labelColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_color: Option<GridColorUnion>,
#[serde(rename = "labelExpr")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_expr: Option<String>,
#[serde(rename = "labelFlush")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_flush: Option<LabelFlush>,
#[serde(rename = "labelFlushOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_flush_offset: Option<CornerRadiusUnion>,
#[serde(rename = "labelFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font: Option<ConditionalAxisPropertyStringNull>,
#[serde(rename = "labelFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_size: Option<GridWidthUnion>,
#[serde(rename = "labelFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_style: Option<ConditionalAxisPropertyFontStyleNull>,
#[serde(rename = "labelFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_font_weight: Option<FontWeight>,
#[serde(rename = "labelLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_limit: Option<CornerRadiusUnion>,
#[serde(rename = "labelLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "labelOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_offset: Option<GridDashOffsetUnion>,
#[serde(rename = "labelOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_opacity: Option<GridDashOffsetUnion>,
#[serde(rename = "labelOverlap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_overlap: Option<LabelOverlapUnion>,
#[serde(rename = "labelPadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_padding: Option<GridDashOffsetUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub labels: Option<Aria>,
#[serde(rename = "labelSeparation")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub label_separation: Option<CornerRadiusUnion>,
#[serde(rename = "maxExtent")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub max_extent: Option<CornerRadiusUnion>,
#[serde(rename = "minExtent")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub min_extent: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub position: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub style: Option<LegendText>,
#[serde(rename = "tickBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_band: Option<TickBandUnion>,
#[serde(rename = "tickCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_cap: Option<Cap>,
#[serde(rename = "tickColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_color: Option<GridColorUnion>,
#[serde(rename = "tickCount")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_count: Option<TickCount>,
#[serde(rename = "tickDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_dash: Option<AxisTickDash>,
#[serde(rename = "tickDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_dash_offset: Option<GridDashOffsetUnion>,
#[serde(rename = "tickExtra")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_extra: Option<Aria>,
#[serde(rename = "tickMinStep")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_min_step: Option<CornerRadiusUnion>,
#[serde(rename = "tickOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_offset: Option<CornerRadiusUnion>,
#[serde(rename = "tickOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_opacity: Option<GridDashOffsetUnion>,
#[serde(rename = "tickRound")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_round: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ticks: Option<Aria>,
#[serde(rename = "tickSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_size: Option<GridWidthUnion>,
#[serde(rename = "tickWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tick_width: Option<GridWidthUnion>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub title: RemovableValue<LegendText>,
#[serde(rename = "titleAlign")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_align: Option<TitleAlignUnion>,
#[serde(rename = "titleAnchor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_anchor: Option<TitleAnchorUnion>,
#[serde(rename = "titleAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_angle: Option<CornerRadiusUnion>,
#[serde(rename = "titleBaseline")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_baseline: Option<TextBaseline>,
#[serde(rename = "titleColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_color: Option<Box<Color>>,
#[serde(rename = "titleFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font: Option<Box<Color>>,
#[serde(rename = "titleFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_size: Option<FontSize>,
#[serde(rename = "titleFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_style: Option<Box<Color>>,
#[serde(rename = "titleFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_font_weight: Option<FontWeightUnion>,
#[serde(rename = "titleLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_limit: Option<FontSize>,
#[serde(rename = "titleLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "titleOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_opacity: Option<CornerRadiusUnion>,
#[serde(rename = "titlePadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_padding: Option<CornerRadiusUnion>,
#[serde(rename = "titleX")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_x: Option<CornerRadiusUnion>,
#[serde(rename = "titleY")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title_y: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub translate: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub values: Option<Values>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zindex: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct TentacledLinearGradient {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient: Option<Gradient>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stops: Option<Vec<GradientStop>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct StickyLinearGradient {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub gradient: Option<Gradient>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stops: Option<Vec<GradientStop>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r1: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub r2: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct FluffyTooltipContent {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub content: Option<Content>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub expr: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct TickConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<TitleAlignUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<Angle>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(rename = "ariaRole")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role: Option<Box<Color>>,
#[serde(rename = "ariaRoleDescription")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria_role_description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aspect: Option<Aria>,
#[serde(rename = "bandSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub band_size: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<TextBaseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub blend: Option<BlendUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<MarkConfigExprOrSignalRefColor>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusBottomRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_bottom_right: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopLeft")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_left: Option<CornerRadiusUnion>,
#[serde(rename = "cornerRadiusTopRight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius_top_right: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<CursorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dir: Option<Dir>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub ellipsis: Option<Box<Color>>,
#[serde(rename = "endAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub end_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<MarkConfigExprOrSignalRefFill>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub href: Option<Box<Color>>,
#[serde(rename = "innerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub inner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub interpolate: Option<MarkConfigExprOrSignalRefInterpolate>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub invalid: RemovableValue<Invalid>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<CornerRadiusUnion>,
#[serde(rename = "lineBreak")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_break: Option<Box<Color>>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub order: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<Orientation>,
#[serde(rename = "outerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub outer_radius: Option<CornerRadiusUnion>,
#[serde(rename = "padAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub pad_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub radius2: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub shape: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub size: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub smooth: Option<Aria>,
#[serde(rename = "startAngle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub start_angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke: Option<MarkConfigExprOrSignalRefFill>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tension: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub text: Option<ConditionalPredicateValueDefTextExprRefText>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub theta2: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub thickness: Option<f64>,
#[serde(rename = "timeUnitBand")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band: Option<f64>,
#[serde(rename = "timeUnitBandPosition")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub time_unit_band_position: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub tooltip: Option<MarkConfigExprOrSignalRefTooltip>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub url: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub x2: Option<XUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y: Option<YUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub y2: Option<YUnion>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct BaseTitleNoValueRefs {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<Align>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub anchor: Option<TitleAnchorUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub angle: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub aria: Option<Aria>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub baseline: Option<Baseline>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub color: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dx: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub dy: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font: Option<Box<Color>>,
#[serde(rename = "fontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_size: Option<FontSize>,
#[serde(rename = "fontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_style: Option<Box<Color>>,
#[serde(rename = "fontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub font_weight: Option<FontWeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub frame: Option<Box<Color>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub limit: Option<FontSize>,
#[serde(rename = "lineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub line_height: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub offset: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub orient: Option<TitleParamsOrient>,
#[serde(rename = "subtitleColor")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_color: Option<Box<Color>>,
#[serde(rename = "subtitleFont")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_font: Option<Box<Color>>,
#[serde(rename = "subtitleFontSize")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_font_size: Option<FontSize>,
#[serde(rename = "subtitleFontStyle")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_font_style: Option<Box<Color>>,
#[serde(rename = "subtitleFontWeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_font_weight: Option<FontWeightUnion>,
#[serde(rename = "subtitleLineHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_line_height: Option<CornerRadiusUnion>,
#[serde(rename = "subtitlePadding")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub subtitle_padding: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub zindex: Option<FontSize>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct ViewConfig {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub clip: Option<bool>,
#[serde(rename = "continuousHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub continuous_height: Option<f64>,
#[serde(rename = "continuousWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub continuous_width: Option<f64>,
#[serde(rename = "cornerRadius")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub corner_radius: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub cursor: Option<Cursor>,
#[serde(rename = "discreteHeight")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub discrete_height: Option<DiscreteHeightUnion>,
#[serde(rename = "discreteWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub discrete_width: Option<DiscreteWidthUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill: Option<Box<Color>>,
#[serde(rename = "fillOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub fill_opacity: Option<Opacity>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub opacity: Option<CornerRadiusUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub stroke: RemovableValue<Color>,
#[serde(rename = "strokeCap")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_cap: Option<Cap>,
#[serde(rename = "strokeDash")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash: Option<StrokeDashUnion>,
#[serde(rename = "strokeDashOffset")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_dash_offset: Option<CornerRadiusUnion>,
#[serde(rename = "strokeJoin")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_join: Option<StrokeJoinUnion>,
#[serde(rename = "strokeMiterLimit")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_miter_limit: Option<CornerRadiusUnion>,
#[serde(rename = "strokeOpacity")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_opacity: Option<Opacity>,
#[serde(rename = "strokeWidth")]
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub stroke_width: Option<FontSize>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct DiscreteHeightClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct DiscreteWidthClass {
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub step: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Builder)]
#[builder(setter(into, strip_option))]
pub struct VegaliteSpec {
#[serde(default, skip_serializing_if = "RemovableValue::is_default")]
#[builder(default)]
pub data: RemovableValue<UrlData>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub encoding: Option<SpecEncoding>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub height: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub layer: Option<Vec<LayerElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub projection: Option<Box<Projection>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub resolve: Option<Box<Resolve>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub title: Option<TitleUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub transform: Option<Vec<Transform>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub view: Option<Box<ViewBackground>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub width: Option<HeightUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub mark: Option<AnyMark>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub selection: Option<HashMap<String, SelectionDef>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub align: Option<Box<VegaliteAlign>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub bounds: Option<Box<Bounds>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub center: Option<Box<Center>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spacing: Option<Box<Spacing>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub columns: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub repeat: Option<Box<RepeatUnion>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub spec: Option<NormalizedSpecSpec>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub facet: Option<FacetFieldName>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub concat: Option<Vec<Spec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub vconcat: Option<Vec<Spec>>,
#[serde(skip_serializing_if = "Option::is_none")]
#[builder(default)]
pub hconcat: Option<Vec<Spec>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum VegaliteAlign {
Enum(LayoutAlign),
RowColLayoutAlign(RowColLayoutAlign),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Autosize {
AutoSizeParams(AutoSizeParams),
Enum(AutosizeType),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Color {
BackgroundExprRef(BackgroundExprRef),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Center {
Bool(bool),
RowColBoolean(RowColBoolean),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Graticule {
Bool(bool),
GraticuleParams(GraticuleParams),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum SphereUnion {
Bool(bool),
SphereClass(SphereClass),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum UrlDataInlineDataset {
AnythingMap(HashMap<String, Option<serde_json::Value>>),
String(String),
UnionArray(Vec<serde_json::value::Value>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
#[allow(unused)]
enum UnusedInlineDataset {
AnythingMap(HashMap<String, Option<serde_json::Value>>),
Bool(bool),
Double(f64),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Aggregate {
ArgmDef(ArgmDef),
Enum(NonArgAggregateOp),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum AngleBin {
BinParams(BinParams),
Bool(bool),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum BinExtent {
BinExtentClass(BinExtentClass),
DoubleArray(Vec<f64>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum AngleCondition {
ConditionalPredicateValueDefNumberExprRefClass(ConditionalPredicateValueDefNumberExprRefClass),
ConditionalValueDefNumberExprRefArray(Vec<ConditionalValueDefNumberExprRef>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum SelectionCompositionElement {
Selection(Selection),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalValueDefNumberExprRefSelectionComposition {
Selection(Selection),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum PredicateCompositionElement {
Predicate(Box<Predicate>),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalValueDefNumberExprRefPredicateComposition {
Predicate(Box<Predicate>),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Equal {
Bool(bool),
Double(f64),
EqualDateTime(EqualDateTime),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Day {
Double(f64),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Month {
Double(f64),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Lt {
Double(f64),
GtDateTime(GtDateTime),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum SelectionInitInterval {
Bool(bool),
DateTime(DateTime),
Double(f64),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum LogicalNotPredicateRange {
BackgroundExprRef(BackgroundExprRef),
UnionArray(Vec<Option<PurpleRange>>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum PurpleRange {
Double(f64),
RangeDateTime(RangeDateTime),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TimeUnitUnion {
Enum(TimeUnit),
TimeUnitParams(TimeUnitParams),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalValueDefNumberExprRefValue {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum PrimitiveValue {
Bool(bool),
Double(f64),
RepeatRefClass(RepeatRefClass),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Field {
RepeatRef(RepeatRef),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Aria {
BackgroundExprRef(BackgroundExprRef),
Bool(bool),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum CornerRadiusUnion {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Format {
AnythingMap(HashMap<String, Option<serde_json::Value>>),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FontSize {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum GridAlign {
BackgroundExprRef(BackgroundExprRef),
Enum(LayoutAlign),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TitleAlignUnion {
BackgroundExprRef(BackgroundExprRef),
Enum(Align),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TextBaseline {
BackgroundExprRef(BackgroundExprRef),
Enum(Baseline),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FontWeightUnion {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
Enum(FontWeightEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum LabelOverlapUnion {
BackgroundExprRef(BackgroundExprRef),
Bool(bool),
Enum(LabelOverlapEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum StrokeDashUnion {
BackgroundExprRef(BackgroundExprRef),
DoubleArray(Vec<f64>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TickCount {
Double(f64),
Enum(TimeInterval),
TickCountTimeIntervalStep(TickCountTimeIntervalStep),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum LegendText {
String(String),
StringArray(Vec<String>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TitleAnchorUnion {
BackgroundExprRef(BackgroundExprRef),
Enum(TitleAnchorEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TitleOrientUnion {
BackgroundExprRef(BackgroundExprRef),
Enum(Orient),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Values {
BackgroundExprRef(BackgroundExprRef),
UnionArray(Vec<SelectionInitInterval>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ScaleBins {
DoubleArray(Vec<f64>),
ScaleBinParams(ScaleBinParams),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum DomainUnion {
DomainUnionWith(DomainUnionWith),
Enum(DomainEnum),
UnionArray(Vec<Option<DomainElement>>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum DomainElement {
Bool(bool),
DomainDateTime(DomainDateTime),
Double(f64),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum DomainM {
DomainMaxDateTime(DomainMaxDateTime),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ScaleInterpolate {
Enum(ScaleInterpolateEnum),
ExprRef(ExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Nice {
Bool(bool),
Double(f64),
Enum(TimeInterval),
NiceTimeIntervalStep(NiceTimeIntervalStep),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ScaleRange {
Enum(RangeEnum),
RangeClass(RangeClass),
UnionArray(Vec<FluffyRange>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FluffyRange {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
DoubleArray(Vec<f64>),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum RangeM {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Scheme {
SchemeParams(SchemeParams),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum SortUnion {
EncodingSortField(EncodingSortField),
Enum(Sort),
UnionArray(Vec<SelectionInitInterval>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ColorCondition {
ConditionalPredicateValueDefGradientStringNullExprRefClass(
ConditionalPredicateValueDefGradientStringNullExprRefClass,
),
ConditionalValueDefGradientStringNullExprRefArray(
Vec<ConditionalValueDefGradientStringNullExprRef>,
),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalValueDefGradientStringNullExprRefValue {
String(String),
ValueLinearGradient(ValueLinearGradient),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum PurpleSortArray {
Enum(SortOrder),
SortEncodingSortField(SortEncodingSortField),
UnionArray(Vec<SelectionInitInterval>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum DescriptionBin {
BinParams(BinParams),
Bool(bool),
Enum(BinEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum DescriptionCondition {
PurpleConditionalExprRef(PurpleConditionalExprRef),
PurpleConditionalValueDefStringExprRefArray(Vec<PurpleConditionalValueDefStringExprRef>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Detail {
TypedFieldDef(TypedFieldDef),
TypedFieldDefArray(Vec<TypedFieldDef>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Spacing {
Double(f64),
RowColNumber(RowColNumber),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Latitude2Value {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
Enum(ValueEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Order {
OrderDef(OrderDef),
OrderFieldDefArray(Vec<OrderFieldDef>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum OrderFieldDefCondition {
ConditionalPredicateValueDefNumberClass(ConditionalPredicateValueDefNumberClass),
ConditionalValueDefNumberArray(Vec<ConditionalValueDefNumber>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Stack {
Bool(bool),
Enum(StackOffset),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ShapeCondition {
ConditionalPredicateValueDefStringNullExprRefClass(
ConditionalPredicateValueDefStringNullExprRefClass,
),
ConditionalValueDefStringNullExprRefArray(Vec<ConditionalValueDefStringNullExprRef>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum StrokeDashCondition {
ConditionalSelectionValueDefNumberExprRefClass(ConditionalSelectionValueDefNumberExprRefClass),
ConditionalValueDefNumberExprRefElementArray(Vec<ConditionalValueDefNumberExprRefElement>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalValueDefNumberExprRefValueUnion {
BackgroundExprRef(BackgroundExprRef),
DoubleArray(Vec<f64>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TextCondition {
Conditional(Conditional),
ConditionalValueDefTextExprRefArray(Vec<ConditionalValueDefTextExprRef>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalValueDefTextExprRefText {
BackgroundExprRef(BackgroundExprRef),
String(String),
StringArray(Vec<String>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalPredicateValueDefTextExprRefText {
BackgroundExprRef(BackgroundExprRef),
String(String),
StringArray(Vec<String>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum EncodingTooltip {
FieldOrDatumDefWithConditionStringFieldDefString(
FieldOrDatumDefWithConditionStringFieldDefString,
),
StringFieldDefArray(Vec<StringFieldDef>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FieldOrDatumDefWithConditionStringFieldDefStringCondition {
FluffyConditionalExprRef(FluffyConditionalExprRef),
FluffyConditionalValueDefStringExprRefArray(Vec<FluffyConditionalValueDefStringExprRef>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Cap {
BackgroundExprRef(BackgroundExprRef),
Enum(StrokeCap),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum GridColorUnion {
GridColorExprRef(GridColorExprRef),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionUnion {
ConditionClass(ConditionClass),
ConditionalPredicateValueDefColorNullExprRefArray(
Vec<ConditionalPredicateValueDefColorNullExprRef>,
),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum AxisGridDash {
DoubleArray(Vec<f64>),
PurpleExprRef(PurpleExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TentacledConditionalPredicateValueDefNumberNullExprRef {
ConditionalPredicateValueDefNumberNullExprRefArray(
Vec<ConditionalPredicateValueDefNumberNullExprRef>,
),
PurpleConditionalPredicateValueDefNumberNullExprRef(
PurpleConditionalPredicateValueDefNumberNullExprRef,
),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum GridDashOffsetUnion {
Double(f64),
GridDashOffsetExprRef(GridDashOffsetExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum StickyConditionalPredicateValueDefNumberNullExprRef {
ConditionalPredicateValueDefNumberNullExprRefElementArray(
Vec<ConditionalPredicateValueDefNumberNullExprRefElement>,
),
FluffyConditionalPredicateValueDefNumberNullExprRef(
FluffyConditionalPredicateValueDefNumberNullExprRef,
),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum GridOpacityUnion {
Double(f64),
GridOpacityExprRef(GridOpacityExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum GridWidthUnion {
Double(f64),
GridWidthExprRef(GridWidthExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalAxisPropertyAlignNull {
Enum(Align),
FluffyExprRef(FluffyExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ExprRefCondition {
ConditionCondition(ConditionCondition),
ConditionalPredicateValueDefAlignNullExprRefArray(
Vec<ConditionalPredicateValueDefAlignNullExprRef>,
),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum LabelAngle {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum PurpleTextBaseline {
Enum(Baseline),
TentacledExprRef(TentacledExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ExprRefConditionUnion {
ConditionConditionClass(ConditionConditionClass),
ConditionalPredicateValueDefTextBaselineNullExprRefArray(
Vec<ConditionalPredicateValueDefTextBaselineNullExprRef>,
),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Label {
BackgroundExprRef(BackgroundExprRef),
Bool(bool),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum LabelFlush {
Bool(bool),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalAxisPropertyStringNull {
StickyExprRef(StickyExprRef),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FluffyConditionalPredicateValueDefStringNullExprRef {
ConditionalPredicateValueDefStringNullExprRefArray(
Vec<ConditionalPredicateValueDefStringNullExprRef>,
),
PurpleConditionalPredicateValueDefStringNullExprRef(
PurpleConditionalPredicateValueDefStringNullExprRef,
),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ConditionalAxisPropertyFontStyleNull {
IndigoExprRef(IndigoExprRef),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FluffyConditionalPredicateValueDefFontStyleNullExprRef {
ConditionalPredicateValueDefFontStyleNullExprRefArray(
Vec<ConditionalPredicateValueDefFontStyleNullExprRef>,
),
PurpleConditionalPredicateValueDefFontStyleNullExprRef(
PurpleConditionalPredicateValueDefFontStyleNullExprRef,
),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FontWeight {
Double(f64),
Enum(FontWeightEnum),
IndecentExprRef(IndecentExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FluffyConditionalPredicateValueDefFontWeightNullExprRef {
ConditionalPredicateValueDefFontWeightNullExprRefArray(
Vec<ConditionalPredicateValueDefFontWeightNullExprRef>,
),
PurpleConditionalPredicateValueDefFontWeightNullExprRef(
PurpleConditionalPredicateValueDefFontWeightNullExprRef,
),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ValueUnion {
Double(f64),
Enum(FontWeightEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TickBandUnion {
BackgroundExprRef(BackgroundExprRef),
Enum(TickBandEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum AxisTickDash {
DoubleArray(Vec<f64>),
HilariousExprRef(HilariousExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Keyvals {
AnythingArray(Vec<Option<serde_json::Value>>),
ImputeSequence(ImputeSequence),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum HeightUnion {
Double(f64),
Enum(HeightEnum),
Step(Box<Step>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum AnyMark {
Def(Def),
Enum(Mark),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Angle {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum DefBox {
Bool(bool),
MarkConfigExprOrSignalRef(MarkConfigExprOrSignalRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum BlendUnion {
BackgroundExprRef(BackgroundExprRef),
Enum(BlendEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum MarkConfigExprOrSignalRefColor {
PurpleLinearGradient(PurpleLinearGradient),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum CursorUnion {
BackgroundExprRef(BackgroundExprRef),
Enum(Cursor),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Dir {
BackgroundExprRef(BackgroundExprRef),
Enum(TextDirection),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum MarkConfigExprOrSignalRefFill {
FluffyLinearGradient(FluffyLinearGradient),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Opacity {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum MarkConfigExprOrSignalRefInterpolate {
BackgroundExprRef(BackgroundExprRef),
Enum(Interpolate),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum StrokeJoinUnion {
BackgroundExprRef(BackgroundExprRef),
Enum(StrokeJoin),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum MarkConfigExprOrSignalRefTooltip {
Bool(bool),
Double(f64),
PurpleTooltipContent(PurpleTooltipContent),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum XUnion {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
Enum(XEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum YUnion {
BackgroundExprRef(BackgroundExprRef),
Double(f64),
Enum(YEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum MarkDefExtent {
Double(f64),
Enum(ExtentExtent),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Line {
Bool(bool),
OverlayMarkDef(OverlayMarkDef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum PointUnion {
Bool(bool),
Enum(PointEnum),
OverlayMarkDef(OverlayMarkDef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum BindUnion {
Enum(PurpleLegendBinding),
UnionMap(HashMap<String, PurpleStream>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum PurpleStream {
AnythingArray(Vec<Option<serde_json::Value>>),
Double(f64),
PurpleBinding(PurpleBinding),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum ClearUnion {
Bool(bool),
ClearDerivedStream(ClearDerivedStream),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Init {
UnionMap(HashMap<String, Option<InitValue>>),
UnionMapArray(Vec<HashMap<String, Option<SelectionInit>>>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum SelectionInit {
Bool(bool),
DateTime(DateTime),
Double(f64),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum InitValue {
Bool(bool),
DateTime(DateTime),
Double(f64),
String(String),
UnionArray(Vec<SelectionInitInterval>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum OnUnion {
OnDerivedStream(OnDerivedStream),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Translate {
Bool(bool),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TitleUnion {
String(String),
StringArray(Vec<String>),
TitleParams(Box<TitleParams>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum TitleParamsOrient {
BackgroundExprRef(BackgroundExprRef),
Enum(TitleOrient),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum RepeatUnion {
RepeatMapping(RepeatMapping),
StringArray(Vec<String>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FluffySortArray {
EncodingSortFieldFieldName(EncodingSortFieldFieldName),
Enum(SortOrder),
UnionArray(Vec<SelectionInitInterval>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum AxisBandGridDash {
AmbitiousExprRef(AmbitiousExprRef),
DoubleArray(Vec<f64>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum AxisBandTickDash {
CunningExprRef(CunningExprRef),
DoubleArray(Vec<f64>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum BoxplotExtent {
Double(f64),
Enum(ExtentEnum),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Direction {
BackgroundExprRef(BackgroundExprRef),
Enum(Orientation),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum Padding {
Double(f64),
MagentaExprRef(MagentaExprRef),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum RangeValue {
AnythingArray(Vec<Option<serde_json::Value>>),
Enum(RangeEnum),
RangeRange(RangeRange),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum RangeText {
String(String),
StringArray(Vec<String>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum LegendBinding {
Enum(LegendBindingEnum),
LegendStreamBinding(LegendStreamBinding),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum LegendUnion {
OnDerivedStream(OnDerivedStream),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum SingleBind {
Enum(LegendBindingEnum),
UnionMap(HashMap<String, FluffyStream>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum FluffyStream {
AnythingArray(Vec<Option<serde_json::Value>>),
Double(f64),
FluffyBinding(FluffyBinding),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum StyleColor {
String(String),
TentacledLinearGradient(TentacledLinearGradient),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum StyleFill {
StickyLinearGradient(StickyLinearGradient),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum StyleOrient {
BackgroundExprRef(BackgroundExprRef),
Enum(AxisOrient),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum StyleTooltip {
Bool(bool),
Double(f64),
FluffyTooltipContent(FluffyTooltipContent),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum DiscreteHeightUnion {
DiscreteHeightClass(DiscreteHeightClass),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum DiscreteWidthUnion {
DiscreteWidthClass(DiscreteWidthClass),
Double(f64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
#[derive(From)]
pub enum InlineDatasetValue {
AnythingMap(HashMap<String, Option<serde_json::Value>>),
String(String),
UnionArray(Vec<serde_json::value::Value>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum LayoutAlign {
#[serde(rename = "all")]
All,
#[serde(rename = "each")]
Each,
#[serde(rename = "none")]
None,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum AutosizeType {
#[serde(rename = "fit")]
Fit,
#[serde(rename = "fit-x")]
FitX,
#[serde(rename = "fit-y")]
FitY,
#[serde(rename = "none")]
None,
#[serde(rename = "pad")]
Pad,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Contains {
#[serde(rename = "content")]
Content,
#[serde(rename = "padding")]
Padding,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Bounds {
#[serde(rename = "flush")]
Flush,
#[serde(rename = "full")]
Full,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum DataFormatType {
#[serde(rename = "csv")]
Csv,
#[serde(rename = "dsv")]
Dsv,
#[serde(rename = "json")]
Json,
#[serde(rename = "topojson")]
Topojson,
#[serde(rename = "tsv")]
Tsv,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum NonArgAggregateOp {
#[serde(rename = "average")]
Average,
#[serde(rename = "ci0")]
Ci0,
#[serde(rename = "ci1")]
Ci1,
#[serde(rename = "count")]
Count,
#[serde(rename = "distinct")]
Distinct,
#[serde(rename = "max")]
Max,
#[serde(rename = "mean")]
Mean,
#[serde(rename = "median")]
Median,
#[serde(rename = "min")]
Min,
#[serde(rename = "missing")]
Missing,
#[serde(rename = "product")]
Product,
#[serde(rename = "q1")]
Q1,
#[serde(rename = "q3")]
Q3,
#[serde(rename = "stderr")]
Stderr,
#[serde(rename = "stdev")]
Stdev,
#[serde(rename = "stdevp")]
Stdevp,
#[serde(rename = "sum")]
Sum,
#[serde(rename = "valid")]
Valid,
#[serde(rename = "values")]
Values,
#[serde(rename = "variance")]
Variance,
#[serde(rename = "variancep")]
Variancep,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SingleDefUnitChannel {
#[serde(rename = "angle")]
Angle,
#[serde(rename = "color")]
Color,
#[serde(rename = "description")]
Description,
#[serde(rename = "fill")]
Fill,
#[serde(rename = "fillOpacity")]
FillOpacity,
#[serde(rename = "href")]
Href,
#[serde(rename = "key")]
Key,
#[serde(rename = "latitude")]
Latitude,
#[serde(rename = "latitude2")]
Latitude2,
#[serde(rename = "longitude")]
Longitude,
#[serde(rename = "longitude2")]
Longitude2,
#[serde(rename = "opacity")]
Opacity,
#[serde(rename = "radius")]
Radius,
#[serde(rename = "radius2")]
Radius2,
#[serde(rename = "shape")]
Shape,
#[serde(rename = "size")]
Size,
#[serde(rename = "stroke")]
Stroke,
#[serde(rename = "strokeDash")]
StrokeDash,
#[serde(rename = "strokeOpacity")]
StrokeOpacity,
#[serde(rename = "strokeWidth")]
StrokeWidth,
#[serde(rename = "text")]
Text,
#[serde(rename = "theta")]
Theta,
#[serde(rename = "theta2")]
Theta2,
#[serde(rename = "url")]
Url,
#[serde(rename = "x")]
X,
#[serde(rename = "x2")]
X2,
#[serde(rename = "y")]
Y,
#[serde(rename = "y2")]
Y2,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TimeUnit {
#[serde(rename = "date")]
Date,
#[serde(rename = "day")]
Day,
#[serde(rename = "dayhours")]
Dayhours,
#[serde(rename = "dayhoursminutes")]
Dayhoursminutes,
#[serde(rename = "dayhoursminutesseconds")]
Dayhoursminutesseconds,
#[serde(rename = "dayofyear")]
Dayofyear,
#[serde(rename = "hours")]
Hours,
#[serde(rename = "hoursminutes")]
Hoursminutes,
#[serde(rename = "hoursminutesseconds")]
Hoursminutesseconds,
#[serde(rename = "milliseconds")]
Milliseconds,
#[serde(rename = "minutes")]
Minutes,
#[serde(rename = "minutesseconds")]
Minutesseconds,
#[serde(rename = "month")]
Month,
#[serde(rename = "monthdate")]
Monthdate,
#[serde(rename = "monthdatehours")]
Monthdatehours,
#[serde(rename = "monthdatehoursminutes")]
Monthdatehoursminutes,
#[serde(rename = "monthdatehoursminutesseconds")]
Monthdatehoursminutesseconds,
#[serde(rename = "quarter")]
Quarter,
#[serde(rename = "quartermonth")]
Quartermonth,
#[serde(rename = "seconds")]
Seconds,
#[serde(rename = "secondsmilliseconds")]
Secondsmilliseconds,
#[serde(rename = "utcdate")]
Utcdate,
#[serde(rename = "utcday")]
Utcday,
#[serde(rename = "utcdayhours")]
Utcdayhours,
#[serde(rename = "utcdayhoursminutes")]
Utcdayhoursminutes,
#[serde(rename = "utcdayhoursminutesseconds")]
Utcdayhoursminutesseconds,
#[serde(rename = "utcdayofyear")]
Utcdayofyear,
#[serde(rename = "utchours")]
Utchours,
#[serde(rename = "utchoursminutes")]
Utchoursminutes,
#[serde(rename = "utchoursminutesseconds")]
Utchoursminutesseconds,
#[serde(rename = "utcmilliseconds")]
Utcmilliseconds,
#[serde(rename = "utcminutes")]
Utcminutes,
#[serde(rename = "utcminutesseconds")]
Utcminutesseconds,
#[serde(rename = "utcmonth")]
Utcmonth,
#[serde(rename = "utcmonthdate")]
Utcmonthdate,
#[serde(rename = "utcmonthdatehours")]
Utcmonthdatehours,
#[serde(rename = "utcmonthdatehoursminutes")]
Utcmonthdatehoursminutes,
#[serde(rename = "utcmonthdatehoursminutesseconds")]
Utcmonthdatehoursminutesseconds,
#[serde(rename = "utcquarter")]
Utcquarter,
#[serde(rename = "utcquartermonth")]
Utcquartermonth,
#[serde(rename = "utcseconds")]
Utcseconds,
#[serde(rename = "utcsecondsmilliseconds")]
Utcsecondsmilliseconds,
#[serde(rename = "utcweek")]
Utcweek,
#[serde(rename = "utcweekday")]
Utcweekday,
#[serde(rename = "utcweekdayhoursminutes")]
Utcweekdayhoursminutes,
#[serde(rename = "utcweekdayhoursminutesseconds")]
Utcweekdayhoursminutesseconds,
#[serde(rename = "utcweeksdayhours")]
Utcweeksdayhours,
#[serde(rename = "utcyear")]
Utcyear,
#[serde(rename = "utcyeardayofyear")]
Utcyeardayofyear,
#[serde(rename = "utcyearmonth")]
Utcyearmonth,
#[serde(rename = "utcyearmonthdate")]
Utcyearmonthdate,
#[serde(rename = "utcyearmonthdatehours")]
Utcyearmonthdatehours,
#[serde(rename = "utcyearmonthdatehoursminutes")]
Utcyearmonthdatehoursminutes,
#[serde(rename = "utcyearmonthdatehoursminutesseconds")]
Utcyearmonthdatehoursminutesseconds,
#[serde(rename = "utcyearquarter")]
Utcyearquarter,
#[serde(rename = "utcyearquartermonth")]
Utcyearquartermonth,
#[serde(rename = "utcyearweek")]
Utcyearweek,
#[serde(rename = "utcyearweekday")]
Utcyearweekday,
#[serde(rename = "utcyearweekdayhours")]
Utcyearweekdayhours,
#[serde(rename = "utcyearweekdayhoursminutes")]
Utcyearweekdayhoursminutes,
#[serde(rename = "utcyearweekdayhoursminutesseconds")]
Utcyearweekdayhoursminutesseconds,
#[serde(rename = "week")]
Week,
#[serde(rename = "weekday")]
Weekday,
#[serde(rename = "weekdayhoursminutes")]
Weekdayhoursminutes,
#[serde(rename = "weekdayhoursminutesseconds")]
Weekdayhoursminutesseconds,
#[serde(rename = "weeksdayhours")]
Weeksdayhours,
#[serde(rename = "year")]
Year,
#[serde(rename = "yeardayofyear")]
Yeardayofyear,
#[serde(rename = "yearmonth")]
Yearmonth,
#[serde(rename = "yearmonthdate")]
Yearmonthdate,
#[serde(rename = "yearmonthdatehours")]
Yearmonthdatehours,
#[serde(rename = "yearmonthdatehoursminutes")]
Yearmonthdatehoursminutes,
#[serde(rename = "yearmonthdatehoursminutesseconds")]
Yearmonthdatehoursminutesseconds,
#[serde(rename = "yearquarter")]
Yearquarter,
#[serde(rename = "yearquartermonth")]
Yearquartermonth,
#[serde(rename = "yearweek")]
Yearweek,
#[serde(rename = "yearweekday")]
Yearweekday,
#[serde(rename = "yearweekdayhours")]
Yearweekdayhours,
#[serde(rename = "yearweekdayhoursminutes")]
Yearweekdayhoursminutes,
#[serde(rename = "yearweekdayhoursminutesseconds")]
Yearweekdayhoursminutesseconds,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "geojson")]
Geojson,
#[serde(rename = "nominal")]
Nominal,
#[serde(rename = "ordinal")]
Ordinal,
#[serde(rename = "quantitative")]
Quantitative,
#[serde(rename = "temporal")]
Temporal,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum RepeatEnum {
#[serde(rename = "column")]
Column,
#[serde(rename = "layer")]
Layer,
#[serde(rename = "repeat")]
Repeat,
#[serde(rename = "row")]
Row,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Orientation {
#[serde(rename = "horizontal")]
Horizontal,
#[serde(rename = "vertical")]
Vertical,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Align {
#[serde(rename = "center")]
Center,
#[serde(rename = "left")]
Left,
#[serde(rename = "right")]
Right,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Baseline {
#[serde(rename = "alphabetic")]
Alphabetic,
#[serde(rename = "bottom")]
Bottom,
#[serde(rename = "line-bottom")]
LineBottom,
#[serde(rename = "line-top")]
LineTop,
#[serde(rename = "middle")]
Middle,
#[serde(rename = "top")]
Top,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum FontWeightEnum {
#[serde(rename = "bold")]
Bold,
#[serde(rename = "bolder")]
Bolder,
#[serde(rename = "lighter")]
Lighter,
#[serde(rename = "normal")]
Normal,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum LabelOverlapEnum {
#[serde(rename = "greedy")]
Greedy,
#[serde(rename = "parity")]
Parity,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum LegendType {
#[serde(rename = "gradient")]
Gradient,
#[serde(rename = "symbol")]
Symbol,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum LegendOrient {
#[serde(rename = "bottom")]
Bottom,
#[serde(rename = "bottom-left")]
BottomLeft,
#[serde(rename = "bottom-right")]
BottomRight,
#[serde(rename = "left")]
Left,
#[serde(rename = "none")]
None,
#[serde(rename = "right")]
Right,
#[serde(rename = "top")]
Top,
#[serde(rename = "top-left")]
TopLeft,
#[serde(rename = "top-right")]
TopRight,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TimeInterval {
#[serde(rename = "day")]
Day,
#[serde(rename = "hour")]
Hour,
#[serde(rename = "millisecond")]
Millisecond,
#[serde(rename = "minute")]
Minute,
#[serde(rename = "month")]
Month,
#[serde(rename = "second")]
Second,
#[serde(rename = "week")]
Week,
#[serde(rename = "year")]
Year,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TitleAnchorEnum {
#[serde(rename = "end")]
End,
#[serde(rename = "middle")]
Middle,
#[serde(rename = "start")]
Start,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Orient {
#[serde(rename = "bottom")]
Bottom,
#[serde(rename = "left")]
Left,
#[serde(rename = "right")]
Right,
#[serde(rename = "top")]
Top,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum DomainEnum {
#[serde(rename = "unaggregated")]
Unaggregated,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ExprRefType {
#[serde(rename = "cubehelix")]
Cubehelix,
#[serde(rename = "cubehelix-long")]
CubehelixLong,
#[serde(rename = "rgb")]
Rgb,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ScaleInterpolateEnum {
#[serde(rename = "cubehelix")]
Cubehelix,
#[serde(rename = "cubehelix-long")]
CubehelixLong,
#[serde(rename = "hcl")]
Hcl,
#[serde(rename = "hcl-long")]
HclLong,
#[serde(rename = "hsl")]
Hsl,
#[serde(rename = "hsl-long")]
HslLong,
#[serde(rename = "lab")]
Lab,
#[serde(rename = "rgb")]
Rgb,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum RangeEnum {
#[serde(rename = "category")]
Category,
#[serde(rename = "diverging")]
Diverging,
#[serde(rename = "heatmap")]
Heatmap,
#[serde(rename = "height")]
Height,
#[serde(rename = "ordinal")]
Ordinal,
#[serde(rename = "ramp")]
Ramp,
#[serde(rename = "symbol")]
Symbol,
#[serde(rename = "width")]
Width,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ScaleType {
#[serde(rename = "band")]
Band,
#[serde(rename = "bin-ordinal")]
BinOrdinal,
#[serde(rename = "identity")]
Identity,
#[serde(rename = "linear")]
Linear,
#[serde(rename = "log")]
Log,
#[serde(rename = "ordinal")]
Ordinal,
#[serde(rename = "point")]
Point,
#[serde(rename = "pow")]
Pow,
#[serde(rename = "quantile")]
Quantile,
#[serde(rename = "quantize")]
Quantize,
#[serde(rename = "sequential")]
Sequential,
#[serde(rename = "sqrt")]
Sqrt,
#[serde(rename = "symlog")]
Symlog,
#[serde(rename = "threshold")]
Threshold,
#[serde(rename = "time")]
Time,
#[serde(rename = "utc")]
Utc,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SortByChannel {
#[serde(rename = "color")]
Color,
#[serde(rename = "fill")]
Fill,
#[serde(rename = "fillOpacity")]
FillOpacity,
#[serde(rename = "opacity")]
Opacity,
#[serde(rename = "shape")]
Shape,
#[serde(rename = "size")]
Size,
#[serde(rename = "stroke")]
Stroke,
#[serde(rename = "strokeOpacity")]
StrokeOpacity,
#[serde(rename = "strokeWidth")]
StrokeWidth,
#[serde(rename = "text")]
Text,
#[serde(rename = "x")]
X,
#[serde(rename = "y")]
Y,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SortOrder {
#[serde(rename = "ascending")]
Ascending,
#[serde(rename = "descending")]
Descending,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Sort {
#[serde(rename = "ascending")]
Ascending,
#[serde(rename = "color")]
Color,
#[serde(rename = "descending")]
Descending,
#[serde(rename = "fill")]
Fill,
#[serde(rename = "fillOpacity")]
FillOpacity,
#[serde(rename = "opacity")]
Opacity,
#[serde(rename = "shape")]
Shape,
#[serde(rename = "size")]
Size,
#[serde(rename = "-color")]
SortColor,
#[serde(rename = "-fill")]
SortFill,
#[serde(rename = "-fillOpacity")]
SortFillOpacity,
#[serde(rename = "-opacity")]
SortOpacity,
#[serde(rename = "-shape")]
SortShape,
#[serde(rename = "-size")]
SortSize,
#[serde(rename = "-stroke")]
SortStroke,
#[serde(rename = "-strokeOpacity")]
SortStrokeOpacity,
#[serde(rename = "-strokeWidth")]
SortStrokeWidth,
#[serde(rename = "-text")]
SortText,
#[serde(rename = "-x")]
SortX,
#[serde(rename = "-y")]
SortY,
#[serde(rename = "stroke")]
Stroke,
#[serde(rename = "strokeOpacity")]
StrokeOpacity,
#[serde(rename = "strokeWidth")]
StrokeWidth,
#[serde(rename = "text")]
Text,
#[serde(rename = "x")]
X,
#[serde(rename = "y")]
Y,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Gradient {
#[serde(rename = "linear")]
Linear,
#[serde(rename = "radial")]
Radial,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum StandardType {
#[serde(rename = "nominal")]
Nominal,
#[serde(rename = "ordinal")]
Ordinal,
#[serde(rename = "quantitative")]
Quantitative,
#[serde(rename = "temporal")]
Temporal,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum BinEnum {
#[serde(rename = "binned")]
Binned,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ValueEnum {
#[serde(rename = "height")]
Height,
#[serde(rename = "width")]
Width,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum StackOffset {
#[serde(rename = "center")]
Center,
#[serde(rename = "normalize")]
Normalize,
#[serde(rename = "zero")]
Zero,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum StrokeCap {
#[serde(rename = "butt")]
Butt,
#[serde(rename = "round")]
Round,
#[serde(rename = "square")]
Square,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TickBandEnum {
#[serde(rename = "center")]
Center,
#[serde(rename = "extent")]
Extent,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ImputeParamsMethod {
#[serde(rename = "max")]
Max,
#[serde(rename = "mean")]
Mean,
#[serde(rename = "median")]
Median,
#[serde(rename = "min")]
Min,
#[serde(rename = "value")]
Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum HeightEnum {
#[serde(rename = "container")]
Container,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum BlendEnum {
#[serde(rename = "color")]
Color,
#[serde(rename = "color-burn")]
ColorBurn,
#[serde(rename = "color-dodge")]
ColorDodge,
#[serde(rename = "darken")]
Darken,
#[serde(rename = "difference")]
Difference,
#[serde(rename = "exclusion")]
Exclusion,
#[serde(rename = "hard-light")]
HardLight,
#[serde(rename = "hue")]
Hue,
#[serde(rename = "lighten")]
Lighten,
#[serde(rename = "luminosity")]
Luminosity,
#[serde(rename = "multiply")]
Multiply,
#[serde(rename = "overlay")]
Overlay,
#[serde(rename = "saturation")]
Saturation,
#[serde(rename = "screen")]
Screen,
#[serde(rename = "soft-light")]
SoftLight,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Cursor {
#[serde(rename = "alias")]
Alias,
#[serde(rename = "all-scroll")]
AllScroll,
#[serde(rename = "auto")]
Auto,
#[serde(rename = "cell")]
Cell,
#[serde(rename = "col-resize")]
ColResize,
#[serde(rename = "context-menu")]
ContextMenu,
#[serde(rename = "copy")]
Copy,
#[serde(rename = "crosshair")]
Crosshair,
#[serde(rename = "default")]
Default,
#[serde(rename = "e-resize")]
EResize,
#[serde(rename = "ew-resize")]
EwResize,
#[serde(rename = "grab")]
Grab,
#[serde(rename = "grabbing")]
Grabbing,
#[serde(rename = "help")]
Help,
#[serde(rename = "move")]
Move,
#[serde(rename = "n-resize")]
NResize,
#[serde(rename = "ne-resize")]
NeResize,
#[serde(rename = "nesw-resize")]
NeswResize,
#[serde(rename = "no-drop")]
NoDrop,
#[serde(rename = "none")]
None,
#[serde(rename = "not-allowed")]
NotAllowed,
#[serde(rename = "ns-resize")]
NsResize,
#[serde(rename = "nw-resize")]
NwResize,
#[serde(rename = "nwse-resize")]
NwseResize,
#[serde(rename = "pointer")]
Pointer,
#[serde(rename = "progress")]
Progress,
#[serde(rename = "row-resize")]
RowResize,
#[serde(rename = "s-resize")]
SResize,
#[serde(rename = "se-resize")]
SeResize,
#[serde(rename = "sw-resize")]
SwResize,
#[serde(rename = "text")]
Text,
#[serde(rename = "vertical-text")]
VerticalText,
#[serde(rename = "w-resize")]
WResize,
#[serde(rename = "wait")]
Wait,
#[serde(rename = "zoom-in")]
ZoomIn,
#[serde(rename = "zoom-out")]
ZoomOut,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TextDirection {
#[serde(rename = "ltr")]
Ltr,
#[serde(rename = "rtl")]
Rtl,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Interpolate {
#[serde(rename = "basis")]
Basis,
#[serde(rename = "basis-closed")]
BasisClosed,
#[serde(rename = "basis-open")]
BasisOpen,
#[serde(rename = "bundle")]
Bundle,
#[serde(rename = "cardinal")]
Cardinal,
#[serde(rename = "cardinal-closed")]
CardinalClosed,
#[serde(rename = "cardinal-open")]
CardinalOpen,
#[serde(rename = "catmull-rom")]
CatmullRom,
#[serde(rename = "linear")]
Linear,
#[serde(rename = "linear-closed")]
LinearClosed,
#[serde(rename = "monotone")]
Monotone,
#[serde(rename = "natural")]
Natural,
#[serde(rename = "step")]
Step,
#[serde(rename = "step-after")]
StepAfter,
#[serde(rename = "step-before")]
StepBefore,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Invalid {
#[serde(rename = "filter")]
Filter,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum StrokeJoin {
#[serde(rename = "bevel")]
Bevel,
#[serde(rename = "miter")]
Miter,
#[serde(rename = "round")]
Round,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Content {
#[serde(rename = "data")]
Data,
#[serde(rename = "encoding")]
Encoding,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum XEnum {
#[serde(rename = "width")]
Width,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum YEnum {
#[serde(rename = "height")]
Height,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Mark {
#[serde(rename = "arc")]
Arc,
#[serde(rename = "area")]
Area,
#[serde(rename = "bar")]
Bar,
#[serde(rename = "boxplot")]
Boxplot,
#[serde(rename = "circle")]
Circle,
#[serde(rename = "errorband")]
Errorband,
#[serde(rename = "errorbar")]
Errorbar,
#[serde(rename = "geoshape")]
Geoshape,
#[serde(rename = "image")]
Image,
#[serde(rename = "line")]
Line,
#[serde(rename = "point")]
Point,
#[serde(rename = "rect")]
Rect,
#[serde(rename = "rule")]
Rule,
#[serde(rename = "square")]
Square,
#[serde(rename = "text")]
Text,
#[serde(rename = "tick")]
Tick,
#[serde(rename = "trail")]
Trail,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ExtentExtent {
#[serde(rename = "ci")]
Ci,
#[serde(rename = "iqr")]
Iqr,
#[serde(rename = "min-max")]
MinMax,
#[serde(rename = "stderr")]
Stderr,
#[serde(rename = "stdev")]
Stdev,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum PointEnum {
#[serde(rename = "transparent")]
Transparent,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ProjectionType {
#[serde(rename = "albers")]
Albers,
#[serde(rename = "albersUsa")]
AlbersUsa,
#[serde(rename = "azimuthalEqualArea")]
AzimuthalEqualArea,
#[serde(rename = "azimuthalEquidistant")]
AzimuthalEquidistant,
#[serde(rename = "conicConformal")]
ConicConformal,
#[serde(rename = "conicEqualArea")]
ConicEqualArea,
#[serde(rename = "conicEquidistant")]
ConicEquidistant,
#[serde(rename = "equalEarth")]
EqualEarth,
#[serde(rename = "equirectangular")]
Equirectangular,
#[serde(rename = "gnomonic")]
Gnomonic,
#[serde(rename = "identity")]
Identity,
#[serde(rename = "mercator")]
Mercator,
#[serde(rename = "naturalEarth1")]
NaturalEarth1,
#[serde(rename = "orthographic")]
Orthographic,
#[serde(rename = "stereographic")]
Stereographic,
#[serde(rename = "transverseMercator")]
TransverseMercator,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ResolveMode {
#[serde(rename = "independent")]
Independent,
#[serde(rename = "shared")]
Shared,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum PurpleLegendBinding {
#[serde(rename = "legend")]
Legend,
#[serde(rename = "scales")]
Scales,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum MarkType {
#[serde(rename = "arc")]
Arc,
#[serde(rename = "area")]
Area,
#[serde(rename = "group")]
Group,
#[serde(rename = "image")]
Image,
#[serde(rename = "line")]
Line,
#[serde(rename = "path")]
Path,
#[serde(rename = "rect")]
Rect,
#[serde(rename = "rule")]
Rule,
#[serde(rename = "shape")]
Shape,
#[serde(rename = "symbol")]
Symbol,
#[serde(rename = "text")]
Text,
#[serde(rename = "trail")]
Trail,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Source {
#[serde(rename = "scope")]
Scope,
#[serde(rename = "view")]
View,
#[serde(rename = "window")]
Window,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Empty {
#[serde(rename = "all")]
All,
#[serde(rename = "none")]
None,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SelectionResolution {
#[serde(rename = "global")]
Global,
#[serde(rename = "intersect")]
Intersect,
#[serde(rename = "union")]
Union,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum SelectionDefType {
#[serde(rename = "interval")]
Interval,
#[serde(rename = "multi")]
Multi,
#[serde(rename = "single")]
Single,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TitleOrient {
#[serde(rename = "bottom")]
Bottom,
#[serde(rename = "left")]
Left,
#[serde(rename = "none")]
None,
#[serde(rename = "right")]
Right,
#[serde(rename = "top")]
Top,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum AggregateOp {
#[serde(rename = "argmax")]
Argmax,
#[serde(rename = "argmin")]
Argmin,
#[serde(rename = "average")]
Average,
#[serde(rename = "ci0")]
Ci0,
#[serde(rename = "ci1")]
Ci1,
#[serde(rename = "count")]
Count,
#[serde(rename = "distinct")]
Distinct,
#[serde(rename = "max")]
Max,
#[serde(rename = "mean")]
Mean,
#[serde(rename = "median")]
Median,
#[serde(rename = "min")]
Min,
#[serde(rename = "missing")]
Missing,
#[serde(rename = "product")]
Product,
#[serde(rename = "q1")]
Q1,
#[serde(rename = "q3")]
Q3,
#[serde(rename = "stderr")]
Stderr,
#[serde(rename = "stdev")]
Stdev,
#[serde(rename = "stdevp")]
Stdevp,
#[serde(rename = "sum")]
Sum,
#[serde(rename = "valid")]
Valid,
#[serde(rename = "values")]
Values,
#[serde(rename = "variance")]
Variance,
#[serde(rename = "variancep")]
Variancep,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TransformMethod {
#[serde(rename = "exp")]
Exp,
#[serde(rename = "linear")]
Linear,
#[serde(rename = "log")]
Log,
#[serde(rename = "max")]
Max,
#[serde(rename = "mean")]
Mean,
#[serde(rename = "median")]
Median,
#[serde(rename = "min")]
Min,
#[serde(rename = "poly")]
Poly,
#[serde(rename = "pow")]
Pow,
#[serde(rename = "quad")]
Quad,
#[serde(rename = "value")]
Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Op {
#[serde(rename = "argmax")]
Argmax,
#[serde(rename = "argmin")]
Argmin,
#[serde(rename = "average")]
Average,
#[serde(rename = "ci0")]
Ci0,
#[serde(rename = "ci1")]
Ci1,
#[serde(rename = "count")]
Count,
#[serde(rename = "cume_dist")]
CumeDist,
#[serde(rename = "dense_rank")]
DenseRank,
#[serde(rename = "distinct")]
Distinct,
#[serde(rename = "first_value")]
FirstValue,
#[serde(rename = "lag")]
Lag,
#[serde(rename = "last_value")]
LastValue,
#[serde(rename = "lead")]
Lead,
#[serde(rename = "max")]
Max,
#[serde(rename = "mean")]
Mean,
#[serde(rename = "median")]
Median,
#[serde(rename = "min")]
Min,
#[serde(rename = "missing")]
Missing,
#[serde(rename = "nth_value")]
NthValue,
#[serde(rename = "ntile")]
Ntile,
#[serde(rename = "percent_rank")]
PercentRank,
#[serde(rename = "product")]
Product,
#[serde(rename = "q1")]
Q1,
#[serde(rename = "q3")]
Q3,
#[serde(rename = "rank")]
Rank,
#[serde(rename = "row_number")]
RowNumber,
#[serde(rename = "stderr")]
Stderr,
#[serde(rename = "stdev")]
Stdev,
#[serde(rename = "stdevp")]
Stdevp,
#[serde(rename = "sum")]
Sum,
#[serde(rename = "valid")]
Valid,
#[serde(rename = "values")]
Values,
#[serde(rename = "variance")]
Variance,
#[serde(rename = "variancep")]
Variancep,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ExtentEnum {
#[serde(rename = "min-max")]
MinMax,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ErrorbandExtent {
#[serde(rename = "ci")]
Ci,
#[serde(rename = "iqr")]
Iqr,
#[serde(rename = "stderr")]
Stderr,
#[serde(rename = "stdev")]
Stdev,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum FieldTitle {
#[serde(rename = "functional")]
Functional,
#[serde(rename = "plain")]
Plain,
#[serde(rename = "verbal")]
Verbal,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum Bind {
#[serde(rename = "scales")]
Scales,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum LegendBindingEnum {
#[serde(rename = "legend")]
Legend,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum AxisOrient {
#[serde(rename = "bottom")]
Bottom,
#[serde(rename = "horizontal")]
Horizontal,
#[serde(rename = "left")]
Left,
#[serde(rename = "right")]
Right,
#[serde(rename = "top")]
Top,
#[serde(rename = "vertical")]
Vertical,
}