#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum StackType {
#[serde(rename = "Standard")]
Standard,
#[serde(rename = "MessageQueue")]
MessageQueue,
#[serde(rename = "MachineLearning")]
MachineLearning,
#[serde(rename = "OLTP")]
Oltp,
#[serde(rename = "Analytics")]
Analytics,
#[serde(rename = "VectorDB")]
VectorDb,
#[serde(rename = "Geospatial")]
Geospatial,
#[serde(rename = "MongoAlternative")]
MongoAlternative,
#[serde(rename = "Timeseries")]
Timeseries,
#[serde(rename = "ParadeDB")]
ParadeDB,
}
impl ToString for StackType {
fn to_string(&self) -> String {
match self {
Self::Standard => String::from("Standard"),
Self::MessageQueue => String::from("MessageQueue"),
Self::MachineLearning => String::from("MachineLearning"),
Self::Oltp => String::from("OLTP"),
Self::Analytics => String::from("Analytics"),
Self::VectorDb => String::from("VectorDB"),
Self::Geospatial => String::from("Geospatial"),
Self::MongoAlternative => String::from("MongoAlternative"),
Self::Timeseries => String::from("Timeseries"),
Self::ParadeDB => String::from("ParadeDB"),
}
}
}
impl Default for StackType {
fn default() -> StackType {
Self::Standard
}
}
impl std::str::FromStr for StackType {
type Err = String;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"Standard" => Ok(Self::Standard),
"MessageQueue" => Ok(Self::MessageQueue),
"MachineLearning" => Ok(Self::MachineLearning),
"OLTP" => Ok(Self::Oltp),
"Analytics" => Ok(Self::Analytics),
"VectorDB" => Ok(Self::VectorDb),
"Geospatial" => Ok(Self::Geospatial),
"MongoAlternative" => Ok(Self::MongoAlternative),
"Timeseries" => Ok(Self::Timeseries),
"ParadeDB" => Ok(Self::ParadeDB),
_ => Err(format!("Invalid StackType: {}", s)),
}
}
}