use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum StopSetting {
Single(String),
Multiple(Vec<String>),
}
impl StopSetting {
pub fn single(stop: impl Into<String>) -> Self {
Self::Single(stop.into())
}
pub fn multiple<I, S>(stops: I) -> Self
where
I: IntoIterator<Item = S>,
S: Into<String>,
{
Self::Multiple(stops.into_iter().map(|s| s.into()).collect())
}
}
impl From<&str> for StopSetting {
fn from(s: &str) -> Self {
Self::Single(s.to_string())
}
}
impl From<Vec<String>> for StopSetting {
fn from(v: Vec<String>) -> Self {
Self::Multiple(v)
}
}