use serde::{Deserialize, Serialize};
use super::Dtype;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Parameter {
pub name: String,
#[serde(default)]
pub dtype: Option<Dtype>,
#[serde(default)]
pub description: Option<String>,
#[serde(default)]
pub denotation: Option<String>,
#[serde(default)]
pub optional: Option<bool>,
#[serde(default)]
pub enumeration: Option<Vec<EnumerationMember>>,
#[serde(default)]
pub schema: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(default)]
pub min: Option<f64>,
#[serde(default)]
pub max: Option<f64>,
#[serde(default)]
pub sample_rate: Option<u32>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum EnumerationValue {
String(String),
Int(i64),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct EnumerationMember {
pub name: String,
pub value: EnumerationValue,
}