extern crate serde_json;
use std::collections::HashMap;
#[derive(Debug, Serialize, Deserialize)]
pub struct Vegalite {
#[serde(rename = "$schema")]
pub schema: Option<String>,
pub autosize: Option<Autosize>,
pub background: Option<String>,
pub config: Option<Config>,
pub data: Option<Data>,
pub datasets: Option<HashMap<String, InlineDatasetValue>>,
pub description: Option<String>,
pub encoding: Option<Encoding>,
pub height: Option<f64>,
pub mark: Option<AnyMark>,
pub name: Option<String>,
pub padding: Option<Padding>,
pub projection: Option<Projection>,
pub selection: Option<HashMap<String, SelectionDef>>,
pub title: Option<Title>,
pub transform: Option<Vec<Transform>>,
pub width: Option<f64>,
pub align: Option<Align>,
pub bounds: Option<Bounds>,
pub center: Option<Center>,
pub facet: Option<FacetMapping>,
pub resolve: Option<Resolve>,
pub spacing: Option<Spacing>,
pub spec: Box<Option<SpecClass>>,
pub layer: Option<Vec<LayerSpec>>,
pub repeat: Option<Repeat>,
pub vconcat: Option<Vec<Spec>>,
pub hconcat: Option<Vec<Spec>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RowColVgLayoutAlign {
pub column: Option<VgLayoutAlign>,
pub row: Option<VgLayoutAlign>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AutoSizeParams {
pub contains: Option<Contains>,
pub resize: Option<bool>,
#[serde(rename = "type")]
pub auto_size_params_type: Option<AutosizeType>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RowColBoolean {
pub column: Option<bool>,
pub row: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Config {
pub area: Option<AreaConfig>,
pub autosize: Option<Autosize>,
pub axis: Option<AxisConfig>,
#[serde(rename = "axisBand")]
pub axis_band: Option<VgAxisConfig>,
#[serde(rename = "axisBottom")]
pub axis_bottom: Option<VgAxisConfig>,
#[serde(rename = "axisLeft")]
pub axis_left: Option<VgAxisConfig>,
#[serde(rename = "axisRight")]
pub axis_right: Option<VgAxisConfig>,
#[serde(rename = "axisTop")]
pub axis_top: Option<VgAxisConfig>,
#[serde(rename = "axisX")]
pub axis_x: Option<VgAxisConfig>,
#[serde(rename = "axisY")]
pub axis_y: Option<VgAxisConfig>,
pub background: Option<String>,
pub bar: Option<BarConfig>,
pub circle: Option<MarkConfig>,
#[serde(rename = "countTitle")]
pub count_title: Option<String>,
pub datasets: Option<HashMap<String, InlineDatasetValue>>,
#[serde(rename = "fieldTitle")]
pub field_title: Option<FieldTitle>,
pub geoshape: Option<MarkConfig>,
pub header: Option<HeaderConfig>,
#[serde(rename = "invalidValues")]
pub invalid_values: Option<InvalidValues>,
pub legend: Option<LegendConfig>,
pub line: Option<LineConfig>,
pub mark: Option<MarkConfig>,
#[serde(rename = "numberFormat")]
pub number_format: Option<String>,
pub padding: Option<Padding>,
pub point: Option<MarkConfig>,
pub projection: Option<ProjectionConfig>,
pub range: Option<HashMap<String, ConfigRange>>,
pub rect: Option<MarkConfig>,
pub rule: Option<MarkConfig>,
pub scale: Option<ScaleConfig>,
pub selection: Option<SelectionConfig>,
pub square: Option<MarkConfig>,
pub stack: Option<StackOffset>,
pub style: Option<HashMap<String, VgMarkConfig>>,
pub text: Option<TextConfig>,
pub tick: Option<TickConfig>,
#[serde(rename = "timeFormat")]
pub time_format: Option<String>,
pub title: Option<VgTitleConfig>,
pub trail: Option<LineConfig>,
pub view: Option<ViewConfig>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AreaConfig {
pub align: Option<HorizontalAlign>,
pub angle: Option<f64>,
pub baseline: Option<VerticalAlign>,
pub color: Option<String>,
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
pub cursor: Option<Cursor>,
pub dir: Option<Dir>,
pub dx: Option<f64>,
pub dy: Option<f64>,
pub ellipsis: Option<String>,
pub fill: Option<String>,
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontStyle")]
pub font_style: Option<FontStyle>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub href: Option<String>,
pub interpolate: Option<Interpolate>,
pub limit: Option<f64>,
pub line: Option<Line>,
pub opacity: Option<f64>,
pub orient: Option<Orient>,
pub point: Option<PointUnion>,
pub radius: Option<f64>,
pub shape: Option<String>,
pub size: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeCap")]
pub stroke_cap: Option<StrokeCap>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub tension: Option<f64>,
pub text: Option<String>,
pub theta: Option<f64>,
pub tooltip: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct OverlayMarkDef {
pub align: Option<HorizontalAlign>,
pub angle: Option<f64>,
pub baseline: Option<VerticalAlign>,
pub clip: Option<bool>,
pub color: Option<String>,
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
pub cursor: Option<Cursor>,
pub dir: Option<Dir>,
pub dx: Option<f64>,
pub dy: Option<f64>,
pub ellipsis: Option<String>,
pub fill: Option<String>,
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontStyle")]
pub font_style: Option<FontStyle>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub href: Option<String>,
pub interpolate: Option<Interpolate>,
pub limit: Option<f64>,
pub opacity: Option<f64>,
pub orient: Option<Orient>,
pub radius: Option<f64>,
pub shape: Option<String>,
pub size: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeCap")]
pub stroke_cap: Option<StrokeCap>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub style: Option<Style>,
pub tension: Option<f64>,
pub text: Option<String>,
pub theta: Option<f64>,
pub tooltip: Option<serde_json::Value>,
#[serde(rename = "x2Offset")]
pub x2_offset: Option<f64>,
#[serde(rename = "xOffset")]
pub x_offset: Option<f64>,
#[serde(rename = "y2Offset")]
pub y2_offset: Option<f64>,
#[serde(rename = "yOffset")]
pub y_offset: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AxisConfig {
#[serde(rename = "bandPosition")]
pub band_position: Option<f64>,
pub domain: Option<bool>,
#[serde(rename = "domainColor")]
pub domain_color: Option<String>,
#[serde(rename = "domainWidth")]
pub domain_width: Option<f64>,
pub grid: Option<bool>,
#[serde(rename = "gridColor")]
pub grid_color: Option<String>,
#[serde(rename = "gridDash")]
pub grid_dash: Option<Vec<f64>>,
#[serde(rename = "gridOpacity")]
pub grid_opacity: Option<f64>,
#[serde(rename = "gridWidth")]
pub grid_width: Option<f64>,
#[serde(rename = "labelAngle")]
pub label_angle: Option<f64>,
#[serde(rename = "labelBound")]
pub label_bound: Option<Label>,
#[serde(rename = "labelColor")]
pub label_color: Option<String>,
#[serde(rename = "labelFlush")]
pub label_flush: Option<Label>,
#[serde(rename = "labelFont")]
pub label_font: Option<String>,
#[serde(rename = "labelFontSize")]
pub label_font_size: Option<f64>,
#[serde(rename = "labelLimit")]
pub label_limit: Option<f64>,
#[serde(rename = "labelOverlap")]
pub label_overlap: Option<LabelOverlapUnion>,
#[serde(rename = "labelPadding")]
pub label_padding: Option<f64>,
pub labels: Option<bool>,
#[serde(rename = "maxExtent")]
pub max_extent: Option<f64>,
#[serde(rename = "minExtent")]
pub min_extent: Option<f64>,
#[serde(rename = "shortTimeLabels")]
pub short_time_labels: Option<bool>,
#[serde(rename = "tickColor")]
pub tick_color: Option<String>,
#[serde(rename = "tickRound")]
pub tick_round: Option<bool>,
pub ticks: Option<bool>,
#[serde(rename = "tickSize")]
pub tick_size: Option<f64>,
#[serde(rename = "tickWidth")]
pub tick_width: Option<f64>,
#[serde(rename = "titleAlign")]
pub title_align: Option<String>,
#[serde(rename = "titleAngle")]
pub title_angle: Option<f64>,
#[serde(rename = "titleBaseline")]
pub title_baseline: Option<String>,
#[serde(rename = "titleColor")]
pub title_color: Option<String>,
#[serde(rename = "titleFont")]
pub title_font: Option<String>,
#[serde(rename = "titleFontSize")]
pub title_font_size: Option<f64>,
#[serde(rename = "titleFontWeight")]
pub title_font_weight: Option<FontWeight>,
#[serde(rename = "titleLimit")]
pub title_limit: Option<f64>,
#[serde(rename = "titleMaxLength")]
pub title_max_length: Option<f64>,
#[serde(rename = "titlePadding")]
pub title_padding: Option<f64>,
#[serde(rename = "titleX")]
pub title_x: Option<f64>,
#[serde(rename = "titleY")]
pub title_y: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct VgAxisConfig {
#[serde(rename = "bandPosition")]
pub band_position: Option<f64>,
pub domain: Option<bool>,
#[serde(rename = "domainColor")]
pub domain_color: Option<String>,
#[serde(rename = "domainWidth")]
pub domain_width: Option<f64>,
pub grid: Option<bool>,
#[serde(rename = "gridColor")]
pub grid_color: Option<String>,
#[serde(rename = "gridDash")]
pub grid_dash: Option<Vec<f64>>,
#[serde(rename = "gridOpacity")]
pub grid_opacity: Option<f64>,
#[serde(rename = "gridWidth")]
pub grid_width: Option<f64>,
#[serde(rename = "labelAngle")]
pub label_angle: Option<f64>,
#[serde(rename = "labelBound")]
pub label_bound: Option<Label>,
#[serde(rename = "labelColor")]
pub label_color: Option<String>,
#[serde(rename = "labelFlush")]
pub label_flush: Option<Label>,
#[serde(rename = "labelFont")]
pub label_font: Option<String>,
#[serde(rename = "labelFontSize")]
pub label_font_size: Option<f64>,
#[serde(rename = "labelLimit")]
pub label_limit: Option<f64>,
#[serde(rename = "labelOverlap")]
pub label_overlap: Option<LabelOverlapUnion>,
#[serde(rename = "labelPadding")]
pub label_padding: Option<f64>,
pub labels: Option<bool>,
#[serde(rename = "maxExtent")]
pub max_extent: Option<f64>,
#[serde(rename = "minExtent")]
pub min_extent: Option<f64>,
#[serde(rename = "tickColor")]
pub tick_color: Option<String>,
#[serde(rename = "tickRound")]
pub tick_round: Option<bool>,
pub ticks: Option<bool>,
#[serde(rename = "tickSize")]
pub tick_size: Option<f64>,
#[serde(rename = "tickWidth")]
pub tick_width: Option<f64>,
#[serde(rename = "titleAlign")]
pub title_align: Option<String>,
#[serde(rename = "titleAngle")]
pub title_angle: Option<f64>,
#[serde(rename = "titleBaseline")]
pub title_baseline: Option<String>,
#[serde(rename = "titleColor")]
pub title_color: Option<String>,
#[serde(rename = "titleFont")]
pub title_font: Option<String>,
#[serde(rename = "titleFontSize")]
pub title_font_size: Option<f64>,
#[serde(rename = "titleFontWeight")]
pub title_font_weight: Option<FontWeight>,
#[serde(rename = "titleLimit")]
pub title_limit: Option<f64>,
#[serde(rename = "titleMaxLength")]
pub title_max_length: Option<f64>,
#[serde(rename = "titlePadding")]
pub title_padding: Option<f64>,
#[serde(rename = "titleX")]
pub title_x: Option<f64>,
#[serde(rename = "titleY")]
pub title_y: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BarConfig {
pub align: Option<HorizontalAlign>,
pub angle: Option<f64>,
pub baseline: Option<VerticalAlign>,
#[serde(rename = "binSpacing")]
pub bin_spacing: Option<f64>,
pub color: Option<String>,
#[serde(rename = "continuousBandSize")]
pub continuous_band_size: Option<f64>,
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
pub cursor: Option<Cursor>,
pub dir: Option<Dir>,
#[serde(rename = "discreteBandSize")]
pub discrete_band_size: Option<f64>,
pub dx: Option<f64>,
pub dy: Option<f64>,
pub ellipsis: Option<String>,
pub fill: Option<String>,
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontStyle")]
pub font_style: Option<FontStyle>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub href: Option<String>,
pub interpolate: Option<Interpolate>,
pub limit: Option<f64>,
pub opacity: Option<f64>,
pub orient: Option<Orient>,
pub radius: Option<f64>,
pub shape: Option<String>,
pub size: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeCap")]
pub stroke_cap: Option<StrokeCap>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub tension: Option<f64>,
pub text: Option<String>,
pub theta: Option<f64>,
pub tooltip: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MarkConfig {
pub align: Option<HorizontalAlign>,
pub angle: Option<f64>,
pub baseline: Option<VerticalAlign>,
pub color: Option<String>,
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
pub cursor: Option<Cursor>,
pub dir: Option<Dir>,
pub dx: Option<f64>,
pub dy: Option<f64>,
pub ellipsis: Option<String>,
pub fill: Option<String>,
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontStyle")]
pub font_style: Option<FontStyle>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub href: Option<String>,
pub interpolate: Option<Interpolate>,
pub limit: Option<f64>,
pub opacity: Option<f64>,
pub orient: Option<Orient>,
pub radius: Option<f64>,
pub shape: Option<String>,
pub size: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeCap")]
pub stroke_cap: Option<StrokeCap>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub tension: Option<f64>,
pub text: Option<String>,
pub theta: Option<f64>,
pub tooltip: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct HeaderConfig {
#[serde(rename = "labelAngle")]
pub label_angle: Option<f64>,
#[serde(rename = "labelColor")]
pub label_color: Option<String>,
#[serde(rename = "labelFont")]
pub label_font: Option<String>,
#[serde(rename = "labelFontSize")]
pub label_font_size: Option<f64>,
#[serde(rename = "labelLimit")]
pub label_limit: Option<f64>,
#[serde(rename = "titleAnchor")]
pub title_anchor: Option<String>,
#[serde(rename = "titleAngle")]
pub title_angle: Option<f64>,
#[serde(rename = "titleBaseline")]
pub title_baseline: Option<TextBaseline>,
#[serde(rename = "titleColor")]
pub title_color: Option<String>,
#[serde(rename = "titleFont")]
pub title_font: Option<String>,
#[serde(rename = "titleFontSize")]
pub title_font_size: Option<f64>,
#[serde(rename = "titleFontWeight")]
pub title_font_weight: Option<FontWeight>,
#[serde(rename = "titleLimit")]
pub title_limit: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LegendConfig {
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
#[serde(rename = "entryPadding")]
pub entry_padding: Option<f64>,
#[serde(rename = "fillColor")]
pub fill_color: Option<String>,
#[serde(rename = "gradientHeight")]
pub gradient_height: Option<f64>,
#[serde(rename = "gradientLabelBaseline")]
pub gradient_label_baseline: Option<String>,
#[serde(rename = "gradientLabelLimit")]
pub gradient_label_limit: Option<f64>,
#[serde(rename = "gradientLabelOffset")]
pub gradient_label_offset: Option<f64>,
#[serde(rename = "gradientStrokeColor")]
pub gradient_stroke_color: Option<String>,
#[serde(rename = "gradientStrokeWidth")]
pub gradient_stroke_width: Option<f64>,
#[serde(rename = "gradientWidth")]
pub gradient_width: Option<f64>,
#[serde(rename = "labelAlign")]
pub label_align: Option<String>,
#[serde(rename = "labelBaseline")]
pub label_baseline: Option<String>,
#[serde(rename = "labelColor")]
pub label_color: Option<String>,
#[serde(rename = "labelFont")]
pub label_font: Option<String>,
#[serde(rename = "labelFontSize")]
pub label_font_size: Option<f64>,
#[serde(rename = "labelLimit")]
pub label_limit: Option<f64>,
#[serde(rename = "labelOffset")]
pub label_offset: Option<f64>,
pub offset: Option<f64>,
pub orient: Option<LegendOrient>,
pub padding: Option<f64>,
#[serde(rename = "shortTimeLabels")]
pub short_time_labels: Option<bool>,
#[serde(rename = "strokeColor")]
pub stroke_color: Option<String>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
#[serde(rename = "symbolColor")]
pub symbol_color: Option<String>,
#[serde(rename = "symbolSize")]
pub symbol_size: Option<f64>,
#[serde(rename = "symbolStrokeWidth")]
pub symbol_stroke_width: Option<f64>,
#[serde(rename = "symbolType")]
pub symbol_type: Option<String>,
#[serde(rename = "titleAlign")]
pub title_align: Option<String>,
#[serde(rename = "titleBaseline")]
pub title_baseline: Option<String>,
#[serde(rename = "titleColor")]
pub title_color: Option<String>,
#[serde(rename = "titleFont")]
pub title_font: Option<String>,
#[serde(rename = "titleFontSize")]
pub title_font_size: Option<f64>,
#[serde(rename = "titleFontWeight")]
pub title_font_weight: Option<FontWeight>,
#[serde(rename = "titleLimit")]
pub title_limit: Option<f64>,
#[serde(rename = "titlePadding")]
pub title_padding: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LineConfig {
pub align: Option<HorizontalAlign>,
pub angle: Option<f64>,
pub baseline: Option<VerticalAlign>,
pub color: Option<String>,
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
pub cursor: Option<Cursor>,
pub dir: Option<Dir>,
pub dx: Option<f64>,
pub dy: Option<f64>,
pub ellipsis: Option<String>,
pub fill: Option<String>,
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontStyle")]
pub font_style: Option<FontStyle>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub href: Option<String>,
pub interpolate: Option<Interpolate>,
pub limit: Option<f64>,
pub opacity: Option<f64>,
pub orient: Option<Orient>,
pub point: Option<PointUnion>,
pub radius: Option<f64>,
pub shape: Option<String>,
pub size: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeCap")]
pub stroke_cap: Option<StrokeCap>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub tension: Option<f64>,
pub text: Option<String>,
pub theta: Option<f64>,
pub tooltip: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct PaddingClass {
pub bottom: Option<f64>,
pub left: Option<f64>,
pub right: Option<f64>,
pub top: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ProjectionConfig {
pub center: Option<Vec<f64>>,
#[serde(rename = "clipAngle")]
pub clip_angle: Option<f64>,
#[serde(rename = "clipExtent")]
pub clip_extent: Option<Vec<Vec<f64>>>,
pub coefficient: Option<f64>,
pub distance: Option<f64>,
pub fraction: Option<f64>,
pub lobes: Option<f64>,
pub parallel: Option<f64>,
pub precision: Option<HashMap<String, PrecisionValue>>,
pub radius: Option<f64>,
pub ratio: Option<f64>,
pub rotate: Option<Vec<f64>>,
pub spacing: Option<f64>,
pub tilt: Option<f64>,
#[serde(rename = "type")]
pub projection_config_type: Option<VgProjectionType>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct VgScheme {
pub count: Option<f64>,
pub extent: Option<Vec<f64>>,
pub scheme: Option<String>,
pub step: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ScaleConfig {
#[serde(rename = "bandPaddingInner")]
pub band_padding_inner: Option<f64>,
#[serde(rename = "bandPaddingOuter")]
pub band_padding_outer: Option<f64>,
pub clamp: Option<bool>,
#[serde(rename = "continuousPadding")]
pub continuous_padding: Option<f64>,
#[serde(rename = "maxBandSize")]
pub max_band_size: Option<f64>,
#[serde(rename = "maxFontSize")]
pub max_font_size: Option<f64>,
#[serde(rename = "maxOpacity")]
pub max_opacity: Option<f64>,
#[serde(rename = "maxSize")]
pub max_size: Option<f64>,
#[serde(rename = "maxStrokeWidth")]
pub max_stroke_width: Option<f64>,
#[serde(rename = "minBandSize")]
pub min_band_size: Option<f64>,
#[serde(rename = "minFontSize")]
pub min_font_size: Option<f64>,
#[serde(rename = "minOpacity")]
pub min_opacity: Option<f64>,
#[serde(rename = "minSize")]
pub min_size: Option<f64>,
#[serde(rename = "minStrokeWidth")]
pub min_stroke_width: Option<f64>,
#[serde(rename = "pointPadding")]
pub point_padding: Option<f64>,
#[serde(rename = "rangeStep")]
pub range_step: Option<f64>,
pub round: Option<bool>,
#[serde(rename = "textXRangeStep")]
pub text_x_range_step: Option<f64>,
#[serde(rename = "useUnaggregatedDomain")]
pub use_unaggregated_domain: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SelectionConfig {
pub interval: Option<IntervalSelectionConfig>,
pub multi: Option<MultiSelectionConfig>,
pub single: Option<SingleSelectionConfig>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct IntervalSelectionConfig {
pub bind: Option<BindEnum>,
pub empty: Option<VgLayoutAlign>,
pub encodings: Option<Vec<SingleDefChannel>>,
pub fields: Option<Vec<String>>,
pub mark: Option<BrushConfig>,
pub on: Option<serde_json::Value>,
pub resolve: Option<SelectionResolution>,
pub translate: Option<Translate>,
pub zoom: Option<Translate>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BrushConfig {
pub fill: Option<String>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MultiSelectionConfig {
pub empty: Option<VgLayoutAlign>,
pub encodings: Option<Vec<SingleDefChannel>>,
pub fields: Option<Vec<String>>,
pub nearest: Option<bool>,
pub on: Option<serde_json::Value>,
pub resolve: Option<SelectionResolution>,
pub toggle: Option<Translate>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SingleSelectionConfig {
pub bind: Option<HashMap<String, BindValue>>,
pub empty: Option<VgLayoutAlign>,
pub encodings: Option<Vec<SingleDefChannel>>,
pub fields: Option<Vec<String>>,
pub nearest: Option<bool>,
pub on: Option<serde_json::Value>,
pub resolve: Option<SelectionResolution>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct VgBinding {
pub element: Option<String>,
pub input: String,
pub options: Option<Vec<String>>,
pub max: Option<f64>,
pub min: Option<f64>,
pub step: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct VgMarkConfig {
pub align: Option<HorizontalAlign>,
pub angle: Option<f64>,
pub baseline: Option<VerticalAlign>,
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
pub cursor: Option<Cursor>,
pub dir: Option<Dir>,
pub dx: Option<f64>,
pub dy: Option<f64>,
pub ellipsis: Option<String>,
pub fill: Option<String>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontStyle")]
pub font_style: Option<FontStyle>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub href: Option<String>,
pub interpolate: Option<Interpolate>,
pub limit: Option<f64>,
pub opacity: Option<f64>,
pub orient: Option<Orient>,
pub radius: Option<f64>,
pub shape: Option<String>,
pub size: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeCap")]
pub stroke_cap: Option<StrokeCap>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub tension: Option<f64>,
pub text: Option<String>,
pub theta: Option<f64>,
pub tooltip: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TextConfig {
pub align: Option<HorizontalAlign>,
pub angle: Option<f64>,
pub baseline: Option<VerticalAlign>,
pub color: Option<String>,
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
pub cursor: Option<Cursor>,
pub dir: Option<Dir>,
pub dx: Option<f64>,
pub dy: Option<f64>,
pub ellipsis: Option<String>,
pub fill: Option<String>,
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontStyle")]
pub font_style: Option<FontStyle>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub href: Option<String>,
pub interpolate: Option<Interpolate>,
pub limit: Option<f64>,
pub opacity: Option<f64>,
pub orient: Option<Orient>,
pub radius: Option<f64>,
pub shape: Option<String>,
#[serde(rename = "shortTimeLabels")]
pub short_time_labels: Option<bool>,
pub size: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeCap")]
pub stroke_cap: Option<StrokeCap>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub tension: Option<f64>,
pub text: Option<String>,
pub theta: Option<f64>,
pub tooltip: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TickConfig {
pub align: Option<HorizontalAlign>,
pub angle: Option<f64>,
#[serde(rename = "bandSize")]
pub band_size: Option<f64>,
pub baseline: Option<VerticalAlign>,
pub color: Option<String>,
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
pub cursor: Option<Cursor>,
pub dir: Option<Dir>,
pub dx: Option<f64>,
pub dy: Option<f64>,
pub ellipsis: Option<String>,
pub fill: Option<String>,
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontStyle")]
pub font_style: Option<FontStyle>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub href: Option<String>,
pub interpolate: Option<Interpolate>,
pub limit: Option<f64>,
pub opacity: Option<f64>,
pub orient: Option<Orient>,
pub radius: Option<f64>,
pub shape: Option<String>,
pub size: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeCap")]
pub stroke_cap: Option<StrokeCap>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub tension: Option<f64>,
pub text: Option<String>,
pub theta: Option<f64>,
pub thickness: Option<f64>,
pub tooltip: Option<serde_json::Value>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct VgTitleConfig {
pub anchor: Option<Anchor>,
pub angle: Option<f64>,
pub baseline: Option<VerticalAlign>,
pub color: Option<String>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub limit: Option<f64>,
pub offset: Option<f64>,
pub orient: Option<TitleOrient>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ViewConfig {
pub clip: Option<bool>,
pub fill: Option<String>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub height: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub width: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Data {
pub format: Option<DataFormat>,
pub name: Option<String>,
pub url: Option<String>,
pub values: Option<DataInlineDataset>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DataFormat {
pub parse: Option<Parse>,
#[serde(rename = "type")]
pub data_format_type: Option<DataFormatType>,
pub delimiter: Option<String>,
pub property: Option<String>,
pub feature: Option<String>,
pub mesh: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Encoding {
pub color: Option<MarkPropDefWithCondition>,
pub column: Option<FacetFieldDef>,
pub detail: Option<Detail>,
pub fill: Option<MarkPropDefWithCondition>,
pub href: Option<DefWithCondition>,
pub key: Option<FieldDef>,
pub latitude: Option<FieldDef>,
pub latitude2: Option<FieldDef>,
pub longitude: Option<FieldDef>,
pub longitude2: Option<FieldDef>,
pub opacity: Option<MarkPropDefWithCondition>,
pub order: Option<Order>,
pub row: Option<FacetFieldDef>,
pub shape: Option<MarkPropDefWithCondition>,
pub size: Option<MarkPropDefWithCondition>,
pub stroke: Option<MarkPropDefWithCondition>,
pub text: Option<TextClass>,
pub tooltip: Option<Tooltip>,
pub x: Option<XClass>,
pub x2: Option<X2Class>,
pub y: Option<XClass>,
pub y2: Option<X2Class>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MarkPropDefWithCondition {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub condition: Option<ColorCondition>,
pub field: Option<Field>,
pub legend: Option<Legend>,
pub scale: Option<Scale>,
pub sort: Option<Sort>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub mark_prop_def_with_condition_type: Option<Type>,
pub value: Option<PurpleValue>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct BinParams {
pub anchor: Option<f64>,
pub base: Option<f64>,
pub divide: Option<Vec<f64>>,
pub extent: Option<Vec<f64>>,
pub maxbins: Option<f64>,
pub minstep: Option<f64>,
pub nice: Option<bool>,
pub step: Option<f64>,
pub steps: Option<Vec<f64>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ConditionalValueDef {
pub test: Box<Option<Box<PurpleLogicalOperandPredicate>>>,
pub value: ConditionalValueDefValue,
pub selection: Box<Option<Box<PurpleSelectionOperand>>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Selection {
pub not: Box<Option<Box<PurpleSelectionOperand>>>,
pub and: Option<Vec<SelectionOperandElement>>,
pub or: Option<Vec<SelectionOperandElement>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Predicate {
pub not: Box<Option<Box<PurpleLogicalOperandPredicate>>>,
pub and: Option<Vec<LogicalOperandPredicateElement>>,
pub or: Option<Vec<LogicalOperandPredicateElement>>,
pub equal: Option<EqualUnion>,
pub field: Option<String>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub range: Option<Vec<Option<RangeElement>>>,
#[serde(rename = "oneOf")]
pub one_of: Option<Vec<SortElement>>,
pub lt: Option<Lt>,
pub gt: Option<Lt>,
pub lte: Option<Lt>,
pub gte: Option<Lt>,
pub selection: Box<Option<Box<PurpleSelectionOperand>>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DateTime {
pub date: Option<f64>,
pub day: Option<Day>,
pub hours: Option<f64>,
pub milliseconds: Option<f64>,
pub minutes: Option<f64>,
pub month: Option<Month>,
pub quarter: Option<f64>,
pub seconds: Option<f64>,
pub utc: Option<bool>,
pub year: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ConditionalPredicateMarkPropFieldDefClass {
pub test: Box<Option<Box<PurpleLogicalOperandPredicate>>>,
pub value: Option<PurpleValue>,
pub selection: Box<Option<Box<PurpleSelectionOperand>>>,
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub field: Option<Field>,
pub legend: Option<Legend>,
pub scale: Option<Scale>,
pub sort: Option<Sort>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub conditional_def_type: Option<Type>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RepeatRef {
pub repeat: SingleDefChannel,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Legend {
#[serde(rename = "entryPadding")]
pub entry_padding: Option<f64>,
pub format: Option<String>,
pub offset: Option<f64>,
pub orient: Option<LegendOrient>,
pub padding: Option<f64>,
#[serde(rename = "tickCount")]
pub tick_count: Option<f64>,
pub title: Option<String>,
#[serde(rename = "type")]
pub legend_type: Option<LegendType>,
pub values: Option<Vec<SortElement>>,
pub zindex: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Scale {
pub base: Option<f64>,
pub clamp: Option<bool>,
pub domain: Option<DomainUnion>,
pub exponent: Option<f64>,
pub interpolate: Option<InterpolateUnion>,
pub nice: Option<NiceUnion>,
pub padding: Option<f64>,
#[serde(rename = "paddingInner")]
pub padding_inner: Option<f64>,
#[serde(rename = "paddingOuter")]
pub padding_outer: Option<f64>,
pub range: Option<ScaleRange>,
#[serde(rename = "rangeStep")]
pub range_step: Option<f64>,
pub round: Option<bool>,
pub scheme: Option<Scheme>,
#[serde(rename = "type")]
pub scale_type: Option<ScaleType>,
pub zero: Option<bool>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DomainClass {
pub field: Option<String>,
pub selection: String,
pub encoding: Option<String>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ScaleInterpolateParams {
pub gamma: Option<f64>,
#[serde(rename = "type")]
pub scale_interpolate_params_type: ScaleInterpolateParamsType,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct NiceClass {
pub interval: String,
pub step: f64,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SchemeParams {
pub extent: Option<Vec<f64>>,
pub name: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct EncodingSortField {
pub field: Option<Field>,
pub op: AggregateOp,
pub order: Option<VgComparatorOrder>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FacetFieldDef {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub field: Option<Field>,
pub header: Option<Header>,
pub sort: Option<Sort>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub facet_field_def_type: Type,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Header {
pub format: Option<String>,
#[serde(rename = "labelAngle")]
pub label_angle: Option<f64>,
#[serde(rename = "labelColor")]
pub label_color: Option<String>,
#[serde(rename = "labelFont")]
pub label_font: Option<String>,
#[serde(rename = "labelFontSize")]
pub label_font_size: Option<f64>,
#[serde(rename = "labelLimit")]
pub label_limit: Option<f64>,
pub title: Option<String>,
#[serde(rename = "titleAnchor")]
pub title_anchor: Option<String>,
#[serde(rename = "titleAngle")]
pub title_angle: Option<f64>,
#[serde(rename = "titleBaseline")]
pub title_baseline: Option<TextBaseline>,
#[serde(rename = "titleColor")]
pub title_color: Option<String>,
#[serde(rename = "titleFont")]
pub title_font: Option<String>,
#[serde(rename = "titleFontSize")]
pub title_font_size: Option<f64>,
#[serde(rename = "titleFontWeight")]
pub title_font_weight: Option<FontWeight>,
#[serde(rename = "titleLimit")]
pub title_limit: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FieldDef {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub field_def_type: Type,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct DefWithCondition {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub condition: Option<HrefCondition>,
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub def_with_condition_type: Option<Type>,
pub value: Option<PurpleValue>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ConditionalPredicateFieldDefClass {
pub test: Box<Option<Box<PurpleLogicalOperandPredicate>>>,
pub value: Option<PurpleValue>,
pub selection: Box<Option<Box<PurpleSelectionOperand>>>,
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub conditional_def_type: Option<Type>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct OrderFieldDef {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub field: Option<Field>,
pub sort: Option<VgComparatorOrder>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub order_field_def_type: Type,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Def {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub field: Option<Field>,
pub sort: Option<VgComparatorOrder>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub def_type: Option<Type>,
pub value: Option<PurpleValue>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TextClass {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub condition: Option<TextCondition>,
pub field: Option<Field>,
pub format: Option<String>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub text_def_with_condition_type: Option<Type>,
pub value: Option<PurpleValue>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ConditionalPredicateTextFieldDefClass {
pub test: Box<Option<Box<PurpleLogicalOperandPredicate>>>,
pub value: Option<PurpleValue>,
pub selection: Box<Option<Box<PurpleSelectionOperand>>>,
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub field: Option<Field>,
pub format: Option<String>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub conditional_def_type: Option<Type>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TextFieldDef {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub field: Option<Field>,
pub format: Option<String>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub text_field_def_type: Type,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TextDefWithCondition {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub condition: Option<TextCondition>,
pub field: Option<Field>,
pub format: Option<String>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub text_def_with_condition_type: Option<Type>,
pub value: Option<PurpleValue>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct XClass {
pub aggregate: Option<AggregateOp>,
pub axis: Option<Axis>,
pub bin: Option<Bin>,
pub field: Option<Field>,
pub scale: Option<Scale>,
pub sort: Option<Sort>,
pub stack: Option<StackOffset>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub def_type: Option<Type>,
pub value: Option<PurpleValue>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Axis {
pub domain: Option<bool>,
pub format: Option<String>,
pub grid: Option<bool>,
#[serde(rename = "labelAngle")]
pub label_angle: Option<f64>,
#[serde(rename = "labelBound")]
pub label_bound: Option<Label>,
#[serde(rename = "labelFlush")]
pub label_flush: Option<Label>,
#[serde(rename = "labelOverlap")]
pub label_overlap: Option<LabelOverlapUnion>,
#[serde(rename = "labelPadding")]
pub label_padding: Option<f64>,
pub labels: Option<bool>,
#[serde(rename = "maxExtent")]
pub max_extent: Option<f64>,
#[serde(rename = "minExtent")]
pub min_extent: Option<f64>,
pub offset: Option<f64>,
pub orient: Option<TitleOrient>,
pub position: Option<f64>,
#[serde(rename = "tickCount")]
pub tick_count: Option<f64>,
pub ticks: Option<bool>,
#[serde(rename = "tickSize")]
pub tick_size: Option<f64>,
pub title: Option<String>,
#[serde(rename = "titleMaxLength")]
pub title_max_length: Option<f64>,
#[serde(rename = "titlePadding")]
pub title_padding: Option<f64>,
pub values: Option<Vec<SortElement>>,
pub zindex: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct X2Class {
pub aggregate: Option<AggregateOp>,
pub bin: Option<Bin>,
pub field: Option<Field>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub title: Option<String>,
#[serde(rename = "type")]
pub def_type: Option<Type>,
pub value: Option<PurpleValue>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct FacetMapping {
pub column: Option<FacetFieldDef>,
pub row: Option<FacetFieldDef>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SpecClass {
pub data: Option<Data>,
pub description: Option<String>,
pub encoding: Option<SpecEncoding>,
pub height: Option<f64>,
pub layer: Option<Vec<LayerSpec>>,
pub name: Option<String>,
pub projection: Option<Projection>,
pub resolve: Option<Resolve>,
pub title: Option<Title>,
pub transform: Option<Vec<Transform>>,
pub width: Option<f64>,
pub mark: Option<AnyMark>,
pub selection: Option<HashMap<String, SelectionDef>>,
pub align: Option<Align>,
pub bounds: Option<Bounds>,
pub center: Option<Center>,
pub facet: Option<FacetMapping>,
pub spacing: Option<Spacing>,
pub spec: Box<Option<SpecClass>>,
pub repeat: Option<Repeat>,
pub vconcat: Option<Vec<Spec>>,
pub hconcat: Option<Vec<Spec>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Spec {
pub data: Option<Data>,
pub description: Option<String>,
pub encoding: Option<SpecEncoding>,
pub height: Option<f64>,
pub mark: Option<AnyMark>,
pub name: Option<String>,
pub projection: Option<Projection>,
pub selection: Option<HashMap<String, SelectionDef>>,
pub title: Option<Title>,
pub transform: Option<Vec<Transform>>,
pub width: Option<f64>,
pub layer: Option<Vec<LayerSpec>>,
pub resolve: Option<Resolve>,
pub align: Option<Align>,
pub bounds: Option<Bounds>,
pub center: Option<Center>,
pub facet: Option<FacetMapping>,
pub spacing: Option<Spacing>,
pub spec: Box<Option<SpecClass>>,
pub repeat: Option<Repeat>,
pub vconcat: Option<Vec<Spec>>,
pub hconcat: Option<Vec<Spec>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SpecEncoding {
pub color: Option<MarkPropDefWithCondition>,
pub detail: Option<Detail>,
pub fill: Option<MarkPropDefWithCondition>,
pub href: Option<DefWithCondition>,
pub key: Option<FieldDef>,
pub latitude: Option<FieldDef>,
pub latitude2: Option<FieldDef>,
pub longitude: Option<FieldDef>,
pub longitude2: Option<FieldDef>,
pub opacity: Option<MarkPropDefWithCondition>,
pub order: Option<Order>,
pub shape: Option<MarkPropDefWithCondition>,
pub size: Option<MarkPropDefWithCondition>,
pub stroke: Option<MarkPropDefWithCondition>,
pub text: Option<TextClass>,
pub tooltip: Option<Tooltip>,
pub x: Option<XClass>,
pub x2: Option<X2Class>,
pub y: Option<XClass>,
pub y2: Option<X2Class>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LayerSpec {
pub data: Option<Data>,
pub description: Option<String>,
pub encoding: Option<SpecEncoding>,
pub height: Option<f64>,
pub layer: Option<Vec<LayerSpec>>,
pub name: Option<String>,
pub projection: Option<Projection>,
pub resolve: Option<Resolve>,
pub title: Option<Title>,
pub transform: Option<Vec<Transform>>,
pub width: Option<f64>,
pub mark: Option<AnyMark>,
pub selection: Option<HashMap<String, SelectionDef>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct MarkDef {
pub align: Option<HorizontalAlign>,
pub angle: Option<f64>,
pub baseline: Option<VerticalAlign>,
#[serde(rename = "binSpacing")]
pub bin_spacing: Option<f64>,
pub clip: Option<bool>,
pub color: Option<String>,
#[serde(rename = "cornerRadius")]
pub corner_radius: Option<f64>,
pub cursor: Option<Cursor>,
pub dir: Option<Dir>,
pub dx: Option<f64>,
pub dy: Option<f64>,
pub ellipsis: Option<String>,
pub fill: Option<String>,
pub filled: Option<bool>,
#[serde(rename = "fillOpacity")]
pub fill_opacity: Option<f64>,
pub font: Option<String>,
#[serde(rename = "fontSize")]
pub font_size: Option<f64>,
#[serde(rename = "fontStyle")]
pub font_style: Option<FontStyle>,
#[serde(rename = "fontWeight")]
pub font_weight: Option<FontWeight>,
pub href: Option<String>,
pub interpolate: Option<Interpolate>,
pub limit: Option<f64>,
pub line: Option<Line>,
pub opacity: Option<f64>,
pub orient: Option<Orient>,
pub point: Option<PointUnion>,
pub radius: Option<f64>,
pub shape: Option<String>,
pub size: Option<f64>,
pub stroke: Option<String>,
#[serde(rename = "strokeCap")]
pub stroke_cap: Option<StrokeCap>,
#[serde(rename = "strokeDash")]
pub stroke_dash: Option<Vec<f64>>,
#[serde(rename = "strokeDashOffset")]
pub stroke_dash_offset: Option<f64>,
#[serde(rename = "strokeJoin")]
pub stroke_join: Option<StrokeJoin>,
#[serde(rename = "strokeMiterLimit")]
pub stroke_miter_limit: Option<f64>,
#[serde(rename = "strokeOpacity")]
pub stroke_opacity: Option<f64>,
#[serde(rename = "strokeWidth")]
pub stroke_width: Option<f64>,
pub style: Option<Style>,
pub tension: Option<f64>,
pub text: Option<String>,
pub theta: Option<f64>,
pub thickness: Option<f64>,
pub tooltip: Option<serde_json::Value>,
#[serde(rename = "type")]
pub mark_def_type: Mark,
#[serde(rename = "x2Offset")]
pub x2_offset: Option<f64>,
#[serde(rename = "xOffset")]
pub x_offset: Option<f64>,
#[serde(rename = "y2Offset")]
pub y2_offset: Option<f64>,
#[serde(rename = "yOffset")]
pub y_offset: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Projection {
pub center: Option<Vec<f64>>,
#[serde(rename = "clipAngle")]
pub clip_angle: Option<f64>,
#[serde(rename = "clipExtent")]
pub clip_extent: Option<Vec<Vec<f64>>>,
pub coefficient: Option<f64>,
pub distance: Option<f64>,
pub fraction: Option<f64>,
pub lobes: Option<f64>,
pub parallel: Option<f64>,
pub precision: Option<HashMap<String, PrecisionValue>>,
pub radius: Option<f64>,
pub ratio: Option<f64>,
pub rotate: Option<Vec<f64>>,
pub spacing: Option<f64>,
pub tilt: Option<f64>,
#[serde(rename = "type")]
pub projection_type: Option<VgProjectionType>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Resolve {
pub axis: Option<AxisResolveMap>,
pub legend: Option<LegendResolveMap>,
pub scale: Option<ScaleResolveMap>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AxisResolveMap {
pub x: Option<ResolveMode>,
pub y: Option<ResolveMode>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LegendResolveMap {
pub color: Option<ResolveMode>,
pub fill: Option<ResolveMode>,
pub opacity: Option<ResolveMode>,
pub shape: Option<ResolveMode>,
pub size: Option<ResolveMode>,
pub stroke: Option<ResolveMode>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ScaleResolveMap {
pub color: Option<ResolveMode>,
pub fill: Option<ResolveMode>,
pub opacity: Option<ResolveMode>,
pub shape: Option<ResolveMode>,
pub size: Option<ResolveMode>,
pub stroke: Option<ResolveMode>,
pub x: Option<ResolveMode>,
pub y: Option<ResolveMode>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SelectionDef {
pub bind: Option<SelectionDefBind>,
pub empty: Option<VgLayoutAlign>,
pub encodings: Option<Vec<SingleDefChannel>>,
pub fields: Option<Vec<String>>,
pub nearest: Option<bool>,
pub on: Option<serde_json::Value>,
pub resolve: Option<SelectionResolution>,
#[serde(rename = "type")]
pub selection_def_type: SelectionDefType,
pub toggle: Option<Translate>,
pub mark: Option<BrushConfig>,
pub translate: Option<Translate>,
pub zoom: Option<Translate>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct TitleParams {
pub anchor: Option<Anchor>,
pub offset: Option<f64>,
pub orient: Option<TitleOrient>,
pub style: Option<Style>,
pub text: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Transform {
pub filter: Box<Option<Box<PurpleLogicalOperandPredicate>>>,
#[serde(rename = "as")]
pub transform_as: Option<Style>,
pub calculate: Option<String>,
#[serde(rename = "default")]
pub transform_default: Option<String>,
pub from: Option<LookupData>,
pub lookup: Option<String>,
pub bin: Option<Bin>,
pub field: Option<String>,
#[serde(rename = "timeUnit")]
pub time_unit: Option<TimeUnit>,
pub aggregate: Option<Vec<AggregatedFieldDef>>,
pub groupby: Option<Vec<String>>,
pub frame: Option<Vec<Option<f64>>>,
#[serde(rename = "ignorePeers")]
pub ignore_peers: Option<bool>,
pub sort: Option<Vec<SortField>>,
pub window: Option<Vec<WindowFieldDef>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AggregatedFieldDef {
#[serde(rename = "as")]
pub aggregated_field_def_as: String,
pub field: Option<String>,
pub op: AggregateOp,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct LookupData {
pub data: Data,
pub fields: Option<Vec<String>>,
pub key: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SortField {
pub field: String,
pub order: Option<VgComparatorOrder>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct WindowFieldDef {
#[serde(rename = "as")]
pub window_field_def_as: String,
pub field: Option<String>,
pub op: Op,
pub param: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Repeat {
pub column: Option<Vec<String>>,
pub row: Option<Vec<String>>,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct RowColNumber {
pub column: Option<f64>,
pub row: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Align {
Enum(VgLayoutAlign),
RowColVgLayoutAlign(RowColVgLayoutAlign),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Autosize {
AutoSizeParams(AutoSizeParams),
Enum(AutosizeType),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Center {
Bool(bool),
RowColBoolean(RowColBoolean),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FontWeight {
Double(f64),
Enum(FontWeightString),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Line {
Bool(bool),
OverlayMarkDef(OverlayMarkDef),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Style {
String(String),
StringArray(Vec<String>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum PointUnion {
Bool(bool),
Enum(PointEnum),
OverlayMarkDef(OverlayMarkDef),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Label {
Bool(bool),
Double(f64),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum LabelOverlapUnion {
Bool(bool),
Enum(LabelOverlapEnum),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum InlineDatasetValue {
AnythingMap(HashMap<String, Option<serde_json::Value>>),
String(String),
UnionArray(Vec<InlineDataset>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum InlineDataset {
AnythingMap(HashMap<String, Option<serde_json::Value>>),
Bool(bool),
Double(f64),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Padding {
Double(f64),
PaddingClass(PaddingClass),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum PrecisionValue {
Double(f64),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ConfigRange {
UnionArray(Vec<PrecisionValue>),
VgScheme(VgScheme),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Translate {
Bool(bool),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum BindValue {
Double(f64),
String(String),
StringArray(Vec<String>),
VgBinding(VgBinding),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Parse {
Enum(Cursor),
UnionMap(HashMap<String, Option<String>>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DataInlineDataset {
AnythingMap(HashMap<String, Option<serde_json::Value>>),
String(String),
UnionArray(Vec<InlineDataset>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Bin {
BinParams(BinParams),
Bool(bool),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ColorCondition {
ConditionalPredicateMarkPropFieldDefClass(ConditionalPredicateMarkPropFieldDefClass),
ConditionalValueDefArray(Vec<ConditionalValueDef>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SelectionOperandElement {
Selection(Selection),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum PurpleSelectionOperand {
Selection(Selection),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum LogicalOperandPredicateElement {
Predicate(Predicate),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum PurpleLogicalOperandPredicate {
Predicate(Predicate),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum EqualUnion {
Bool(bool),
DateTime(DateTime),
Double(f64),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Day {
Double(f64),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Month {
Double(f64),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Lt {
DateTime(DateTime),
Double(f64),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SortElement {
Bool(bool),
DateTime(DateTime),
Double(f64),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum RangeElement {
DateTime(DateTime),
Double(f64),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ConditionalValueDefValue {
Bool(bool),
Double(f64),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Field {
RepeatRef(RepeatRef),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DomainUnion {
DomainClass(DomainClass),
Enum(Domain),
UnionArray(Vec<SortElement>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum InterpolateUnion {
Enum(ScaleInterpolate),
ScaleInterpolateParams(ScaleInterpolateParams),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum NiceUnion {
Bool(bool),
Double(f64),
Enum(NiceTime),
NiceClass(NiceClass),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ScaleRange {
String(String),
UnionArray(Vec<PrecisionValue>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Scheme {
SchemeParams(SchemeParams),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Sort {
EncodingSortField(EncodingSortField),
Enum(VgComparatorOrder),
UnionArray(Vec<SortElement>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum PurpleValue {
Bool(bool),
Double(f64),
String(String),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Detail {
FieldDef(FieldDef),
FieldDefArray(Vec<FieldDef>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum HrefCondition {
ConditionalPredicateFieldDefClass(ConditionalPredicateFieldDefClass),
ConditionalValueDefArray(Vec<ConditionalValueDef>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Order {
Def(Def),
OrderFieldDefArray(Vec<OrderFieldDef>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum TextCondition {
ConditionalPredicateTextFieldDefClass(ConditionalPredicateTextFieldDefClass),
ConditionalValueDefArray(Vec<ConditionalValueDef>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Tooltip {
TextDefWithCondition(TextDefWithCondition),
TextFieldDefArray(Vec<TextFieldDef>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AnyMark {
Enum(Mark),
MarkDef(MarkDef),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SelectionDefBind {
Enum(BindEnum),
UnionMap(HashMap<String, BindValue>),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Title {
String(String),
TitleParams(TitleParams),
}
#[derive(Debug, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Spacing {
Double(f64),
RowColNumber(RowColNumber),
}
#[derive(Debug, Serialize, Deserialize)]
pub enum VgLayoutAlign {
#[serde(rename = "all")]
All,
#[serde(rename = "each")]
Each,
#[serde(rename = "none")]
None,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum AutosizeType {
#[serde(rename = "fit")]
Fit,
#[serde(rename = "none")]
None,
#[serde(rename = "pad")]
Pad,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum Contains {
#[serde(rename = "content")]
Content,
#[serde(rename = "padding")]
Padding,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum Bounds {
#[serde(rename = "flush")]
Flush,
#[serde(rename = "full")]
Full,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum HorizontalAlign {
#[serde(rename = "center")]
Center,
#[serde(rename = "left")]
Left,
#[serde(rename = "right")]
Right,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum VerticalAlign {
#[serde(rename = "bottom")]
Bottom,
#[serde(rename = "middle")]
Middle,
#[serde(rename = "top")]
Top,
}
#[derive(Debug, 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, Serialize, Deserialize)]
pub enum Dir {
#[serde(rename = "ltr")]
Ltr,
#[serde(rename = "rtl")]
Rtl,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum FontStyle {
#[serde(rename = "italic")]
Italic,
#[serde(rename = "normal")]
Normal,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum FontWeightString {
#[serde(rename = "bold")]
Bold,
#[serde(rename = "normal")]
Normal,
}
#[derive(Debug, 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 = "linear")]
Linear,
#[serde(rename = "linear-closed")]
LinearClosed,
#[serde(rename = "monotone")]
Monotone,
#[serde(rename = "step")]
Step,
#[serde(rename = "step-after")]
StepAfter,
#[serde(rename = "step-before")]
StepBefore,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum Orient {
#[serde(rename = "horizontal")]
Horizontal,
#[serde(rename = "vertical")]
Vertical,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum StrokeCap {
#[serde(rename = "butt")]
Butt,
#[serde(rename = "round")]
Round,
#[serde(rename = "square")]
Square,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum StrokeJoin {
#[serde(rename = "bevel")]
Bevel,
#[serde(rename = "miter")]
Miter,
#[serde(rename = "round")]
Round,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum PointEnum {
#[serde(rename = "transparent")]
Transparent,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum LabelOverlapEnum {
#[serde(rename = "greedy")]
Greedy,
#[serde(rename = "parity")]
Parity,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum FieldTitle {
#[serde(rename = "functional")]
Functional,
#[serde(rename = "plain")]
Plain,
#[serde(rename = "verbal")]
Verbal,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum TextBaseline {
#[serde(rename = "alphabetic")]
Alphabetic,
#[serde(rename = "bottom")]
Bottom,
#[serde(rename = "middle")]
Middle,
#[serde(rename = "top")]
Top,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum InvalidValues {
#[serde(rename = "filter")]
Filter,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum LegendOrient {
#[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-left")]
TopLeft,
#[serde(rename = "top-right")]
TopRight,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum VgProjectionType {
#[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 = "equirectangular")]
Equirectangular,
#[serde(rename = "gnomonic")]
Gnomonic,
#[serde(rename = "mercator")]
Mercator,
#[serde(rename = "orthographic")]
Orthographic,
#[serde(rename = "stereographic")]
Stereographic,
#[serde(rename = "transverseMercator")]
TransverseMercator,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum BindEnum {
#[serde(rename = "scales")]
Scales,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum SingleDefChannel {
#[serde(rename = "color")]
Color,
#[serde(rename = "column")]
Column,
#[serde(rename = "fill")]
Fill,
#[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 = "row")]
Row,
#[serde(rename = "shape")]
Shape,
#[serde(rename = "size")]
Size,
#[serde(rename = "stroke")]
Stroke,
#[serde(rename = "text")]
Text,
#[serde(rename = "tooltip")]
Tooltip,
#[serde(rename = "x")]
X,
#[serde(rename = "x2")]
X2,
#[serde(rename = "y")]
Y,
#[serde(rename = "y2")]
Y2,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum SelectionResolution {
#[serde(rename = "global")]
Global,
#[serde(rename = "intersect")]
Intersect,
#[serde(rename = "union")]
Union,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum StackOffset {
#[serde(rename = "center")]
Center,
#[serde(rename = "normalize")]
Normalize,
#[serde(rename = "zero")]
Zero,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum Anchor {
#[serde(rename = "end")]
End,
#[serde(rename = "middle")]
Middle,
#[serde(rename = "start")]
Start,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum TitleOrient {
#[serde(rename = "bottom")]
Bottom,
#[serde(rename = "left")]
Left,
#[serde(rename = "right")]
Right,
#[serde(rename = "top")]
Top,
}
#[derive(Debug, 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, 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 = "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, Serialize, Deserialize)]
pub enum TimeUnit {
#[serde(rename = "date")]
Date,
#[serde(rename = "day")]
Day,
#[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 = "quarter")]
Quarter,
#[serde(rename = "quartermonth")]
Quartermonth,
#[serde(rename = "seconds")]
Seconds,
#[serde(rename = "secondsmilliseconds")]
Secondsmilliseconds,
#[serde(rename = "utcdate")]
Utcdate,
#[serde(rename = "utcday")]
Utcday,
#[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 = "utcquarter")]
Utcquarter,
#[serde(rename = "utcquartermonth")]
Utcquartermonth,
#[serde(rename = "utcseconds")]
Utcseconds,
#[serde(rename = "utcsecondsmilliseconds")]
Utcsecondsmilliseconds,
#[serde(rename = "utcyear")]
Utcyear,
#[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 = "year")]
Year,
#[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,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "geojson")]
Geojson,
#[serde(rename = "latitude")]
Latitude,
#[serde(rename = "longitude")]
Longitude,
#[serde(rename = "nominal")]
Nominal,
#[serde(rename = "ordinal")]
Ordinal,
#[serde(rename = "quantitative")]
Quantitative,
#[serde(rename = "temporal")]
Temporal,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum LegendType {
#[serde(rename = "gradient")]
Gradient,
#[serde(rename = "symbol")]
Symbol,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum Domain {
#[serde(rename = "unaggregated")]
Unaggregated,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum ScaleInterpolateParamsType {
#[serde(rename = "cubehelix")]
Cubehelix,
#[serde(rename = "cubehelix-long")]
CubehelixLong,
#[serde(rename = "rgb")]
Rgb,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum ScaleInterpolate {
#[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, Serialize, Deserialize)]
pub enum NiceTime {
#[serde(rename = "day")]
Day,
#[serde(rename = "hour")]
Hour,
#[serde(rename = "minute")]
Minute,
#[serde(rename = "month")]
Month,
#[serde(rename = "second")]
Second,
#[serde(rename = "week")]
Week,
#[serde(rename = "year")]
Year,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum ScaleType {
#[serde(rename = "band")]
Band,
#[serde(rename = "bin-linear")]
BinLinear,
#[serde(rename = "bin-ordinal")]
BinOrdinal,
#[serde(rename = "linear")]
Linear,
#[serde(rename = "log")]
Log,
#[serde(rename = "ordinal")]
Ordinal,
#[serde(rename = "point")]
Point,
#[serde(rename = "pow")]
Pow,
#[serde(rename = "sequential")]
Sequential,
#[serde(rename = "sqrt")]
Sqrt,
#[serde(rename = "time")]
Time,
#[serde(rename = "utc")]
Utc,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum VgComparatorOrder {
#[serde(rename = "ascending")]
Ascending,
#[serde(rename = "descending")]
Descending,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum Mark {
#[serde(rename = "area")]
Area,
#[serde(rename = "bar")]
Bar,
#[serde(rename = "circle")]
Circle,
#[serde(rename = "geoshape")]
Geoshape,
#[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, Serialize, Deserialize)]
pub enum ResolveMode {
#[serde(rename = "independent")]
Independent,
#[serde(rename = "shared")]
Shared,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum SelectionDefType {
#[serde(rename = "interval")]
Interval,
#[serde(rename = "multi")]
Multi,
#[serde(rename = "single")]
Single,
}
#[derive(Debug, 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 = "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,
}