use derive_builder::Builder;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Builder, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct Connector {
#[builder(setter(into))]
pub(crate) id: String,
#[builder(setter(into))]
name: String,
#[builder(setter(each(name = "supports")), default)]
supported_types: Vec<ConnectorType>,
#[builder(setter(into))]
pub(crate) format: String,
#[builder(setter(each(name = "datum")), default)]
pub(crate) data: Vec<super::data::Data>,
#[builder(setter(into, strip_option), default)]
#[serde(skip_serializing_if = "Option::is_none")]
sub_category_id: Option<String>,
}
impl Connector {
pub fn builder() -> ConnectorBuilder {
ConnectorBuilder::default()
}
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[non_exhaustive]
#[serde(rename_all = "lowercase")]
pub enum ConnectorType {
Dial,
Slider,
}