use crate::types::basic::{Boolean, OSString};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct VisibilityAction {
#[serde(rename = "@graphics")]
pub graphics: Boolean,
#[serde(rename = "@sensors")]
pub sensors: Boolean,
#[serde(rename = "@traffic")]
pub traffic: Boolean,
#[serde(rename = "SensorReferenceSet", skip_serializing_if = "Option::is_none")]
pub sensor_reference_set: Option<SensorReferenceSet>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[derive(Default)]
pub struct SensorReferenceSet {
#[serde(rename = "SensorReference")]
pub sensor_references: Vec<SensorReference>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct SensorReference {
#[serde(rename = "@name")]
pub name: OSString,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[derive(Default)]
pub struct AppearanceAction {
#[serde(rename = "LightStateAction", skip_serializing_if = "Option::is_none")]
pub light_state_action: Option<LightStateAction>,
#[serde(rename = "AnimationAction", skip_serializing_if = "Option::is_none")]
pub animation_action: Option<AnimationAction>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[derive(Default)]
pub struct LightStateAction {}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
#[derive(Default)]
pub struct AnimationAction {}
impl Default for VisibilityAction {
fn default() -> Self {
Self {
graphics: Boolean::literal(true),
sensors: Boolean::literal(true),
traffic: Boolean::literal(true),
sensor_reference_set: None,
}
}
}
impl Default for SensorReference {
fn default() -> Self {
Self {
name: OSString::literal("DefaultSensor".to_string()),
}
}
}