use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Eq, PartialEq)]
pub enum PossibleUse {
Agricultural,
Cattle,
Commercial,
Dairy,
Development,
Farm,
Fishery,
Grazing,
HighwayTouristService,
Horses,
Hunting,
Industrial,
Investment,
Livestock,
ManufacturedHome,
MiniStorage,
MultiFamily,
Orchard,
Other,
Pasture,
PlaceofWorship,
Poultry,
Ranch,
Recreational,
Residential,
Retail,
SeeRemarks,
SingleFamily,
Subdevelopment,
Timber,
Unimproved,
Vacant,
Warehouse,
OpenEnumeration(String),
}
impl crate::ResoEnumeration for PossibleUse {
fn from_str(s: &str) -> PossibleUse {
match s {
"Agricultural" => PossibleUse::Agricultural,
"Cattle" => PossibleUse::Cattle,
"Commercial" => PossibleUse::Commercial,
"Dairy" => PossibleUse::Dairy,
"Development" => PossibleUse::Development,
"Farm" => PossibleUse::Farm,
"Fishery" => PossibleUse::Fishery,
"Grazing" => PossibleUse::Grazing,
"Highway/Tourist Service" => PossibleUse::HighwayTouristService,
"Horses" => PossibleUse::Horses,
"Hunting" => PossibleUse::Hunting,
"Industrial" => PossibleUse::Industrial,
"Investment" => PossibleUse::Investment,
"Livestock" => PossibleUse::Livestock,
"Manufactured Home" => PossibleUse::ManufacturedHome,
"Mini-Storage" => PossibleUse::MiniStorage,
"Multi-Family" => PossibleUse::MultiFamily,
"Orchard" => PossibleUse::Orchard,
"Other" => PossibleUse::Other,
"Pasture" => PossibleUse::Pasture,
"Place of Worship" => PossibleUse::PlaceofWorship,
"Poultry" => PossibleUse::Poultry,
"Ranch" => PossibleUse::Ranch,
"Recreational" => PossibleUse::Recreational,
"Residential" => PossibleUse::Residential,
"Retail" => PossibleUse::Retail,
"See Remarks" => PossibleUse::SeeRemarks,
"Single Family" => PossibleUse::SingleFamily,
"Subdevelopment" => PossibleUse::Subdevelopment,
"Timber" => PossibleUse::Timber,
"Unimproved" => PossibleUse::Unimproved,
"Vacant" => PossibleUse::Vacant,
"Warehouse" => PossibleUse::Warehouse,
_ => PossibleUse::OpenEnumeration(s.into()),
}
}
fn from_string(s: String) -> PossibleUse {
match s.as_ref() {
"Agricultural" => PossibleUse::Agricultural,
"Cattle" => PossibleUse::Cattle,
"Commercial" => PossibleUse::Commercial,
"Dairy" => PossibleUse::Dairy,
"Development" => PossibleUse::Development,
"Farm" => PossibleUse::Farm,
"Fishery" => PossibleUse::Fishery,
"Grazing" => PossibleUse::Grazing,
"Highway/Tourist Service" => PossibleUse::HighwayTouristService,
"Horses" => PossibleUse::Horses,
"Hunting" => PossibleUse::Hunting,
"Industrial" => PossibleUse::Industrial,
"Investment" => PossibleUse::Investment,
"Livestock" => PossibleUse::Livestock,
"Manufactured Home" => PossibleUse::ManufacturedHome,
"Mini-Storage" => PossibleUse::MiniStorage,
"Multi-Family" => PossibleUse::MultiFamily,
"Orchard" => PossibleUse::Orchard,
"Other" => PossibleUse::Other,
"Pasture" => PossibleUse::Pasture,
"Place of Worship" => PossibleUse::PlaceofWorship,
"Poultry" => PossibleUse::Poultry,
"Ranch" => PossibleUse::Ranch,
"Recreational" => PossibleUse::Recreational,
"Residential" => PossibleUse::Residential,
"Retail" => PossibleUse::Retail,
"See Remarks" => PossibleUse::SeeRemarks,
"Single Family" => PossibleUse::SingleFamily,
"Subdevelopment" => PossibleUse::Subdevelopment,
"Timber" => PossibleUse::Timber,
"Unimproved" => PossibleUse::Unimproved,
"Vacant" => PossibleUse::Vacant,
"Warehouse" => PossibleUse::Warehouse,
_ => PossibleUse::OpenEnumeration(s),
}
}
fn to_str(&self) -> &str {
match self {
PossibleUse::Agricultural => "Agricultural",
PossibleUse::Cattle => "Cattle",
PossibleUse::Commercial => "Commercial",
PossibleUse::Dairy => "Dairy",
PossibleUse::Development => "Development",
PossibleUse::Farm => "Farm",
PossibleUse::Fishery => "Fishery",
PossibleUse::Grazing => "Grazing",
PossibleUse::HighwayTouristService => "Highway/Tourist Service",
PossibleUse::Horses => "Horses",
PossibleUse::Hunting => "Hunting",
PossibleUse::Industrial => "Industrial",
PossibleUse::Investment => "Investment",
PossibleUse::Livestock => "Livestock",
PossibleUse::ManufacturedHome => "Manufactured Home",
PossibleUse::MiniStorage => "Mini-Storage",
PossibleUse::MultiFamily => "Multi-Family",
PossibleUse::Orchard => "Orchard",
PossibleUse::Other => "Other",
PossibleUse::Pasture => "Pasture",
PossibleUse::PlaceofWorship => "Place of Worship",
PossibleUse::Poultry => "Poultry",
PossibleUse::Ranch => "Ranch",
PossibleUse::Recreational => "Recreational",
PossibleUse::Residential => "Residential",
PossibleUse::Retail => "Retail",
PossibleUse::SeeRemarks => "See Remarks",
PossibleUse::SingleFamily => "Single Family",
PossibleUse::Subdevelopment => "Subdevelopment",
PossibleUse::Timber => "Timber",
PossibleUse::Unimproved => "Unimproved",
PossibleUse::Vacant => "Vacant",
PossibleUse::Warehouse => "Warehouse",
PossibleUse::OpenEnumeration(ref s) => s,
}
}
fn into_string(self) -> String {
match self {
PossibleUse::Agricultural => "Agricultural".into(),
PossibleUse::Cattle => "Cattle".into(),
PossibleUse::Commercial => "Commercial".into(),
PossibleUse::Dairy => "Dairy".into(),
PossibleUse::Development => "Development".into(),
PossibleUse::Farm => "Farm".into(),
PossibleUse::Fishery => "Fishery".into(),
PossibleUse::Grazing => "Grazing".into(),
PossibleUse::HighwayTouristService => "Highway/Tourist Service".into(),
PossibleUse::Horses => "Horses".into(),
PossibleUse::Hunting => "Hunting".into(),
PossibleUse::Industrial => "Industrial".into(),
PossibleUse::Investment => "Investment".into(),
PossibleUse::Livestock => "Livestock".into(),
PossibleUse::ManufacturedHome => "Manufactured Home".into(),
PossibleUse::MiniStorage => "Mini-Storage".into(),
PossibleUse::MultiFamily => "Multi-Family".into(),
PossibleUse::Orchard => "Orchard".into(),
PossibleUse::Other => "Other".into(),
PossibleUse::Pasture => "Pasture".into(),
PossibleUse::PlaceofWorship => "Place of Worship".into(),
PossibleUse::Poultry => "Poultry".into(),
PossibleUse::Ranch => "Ranch".into(),
PossibleUse::Recreational => "Recreational".into(),
PossibleUse::Residential => "Residential".into(),
PossibleUse::Retail => "Retail".into(),
PossibleUse::SeeRemarks => "See Remarks".into(),
PossibleUse::SingleFamily => "Single Family".into(),
PossibleUse::Subdevelopment => "Subdevelopment".into(),
PossibleUse::Timber => "Timber".into(),
PossibleUse::Unimproved => "Unimproved".into(),
PossibleUse::Vacant => "Vacant".into(),
PossibleUse::Warehouse => "Warehouse".into(),
PossibleUse::OpenEnumeration(s) => s,
}
}
fn fallback_value(&self) -> Option<&str> {
match self {
PossibleUse::OpenEnumeration(ref s) => Some(s),
_ => None,
}
}
}
impl From<String> for PossibleUse {
fn from(s: String) -> PossibleUse {
match s.as_ref() {
"Agricultural" => PossibleUse::Agricultural,
"Cattle" => PossibleUse::Cattle,
"Commercial" => PossibleUse::Commercial,
"Dairy" => PossibleUse::Dairy,
"Development" => PossibleUse::Development,
"Farm" => PossibleUse::Farm,
"Fishery" => PossibleUse::Fishery,
"Grazing" => PossibleUse::Grazing,
"Highway/Tourist Service" => PossibleUse::HighwayTouristService,
"Horses" => PossibleUse::Horses,
"Hunting" => PossibleUse::Hunting,
"Industrial" => PossibleUse::Industrial,
"Investment" => PossibleUse::Investment,
"Livestock" => PossibleUse::Livestock,
"Manufactured Home" => PossibleUse::ManufacturedHome,
"Mini-Storage" => PossibleUse::MiniStorage,
"Multi-Family" => PossibleUse::MultiFamily,
"Orchard" => PossibleUse::Orchard,
"Other" => PossibleUse::Other,
"Pasture" => PossibleUse::Pasture,
"Place of Worship" => PossibleUse::PlaceofWorship,
"Poultry" => PossibleUse::Poultry,
"Ranch" => PossibleUse::Ranch,
"Recreational" => PossibleUse::Recreational,
"Residential" => PossibleUse::Residential,
"Retail" => PossibleUse::Retail,
"See Remarks" => PossibleUse::SeeRemarks,
"Single Family" => PossibleUse::SingleFamily,
"Subdevelopment" => PossibleUse::Subdevelopment,
"Timber" => PossibleUse::Timber,
"Unimproved" => PossibleUse::Unimproved,
"Vacant" => PossibleUse::Vacant,
"Warehouse" => PossibleUse::Warehouse,
_ => PossibleUse::OpenEnumeration(s),
}
}
}
impl From<&str> for PossibleUse {
fn from(s: &str) -> PossibleUse {
match s {
"Agricultural" => PossibleUse::Agricultural,
"Cattle" => PossibleUse::Cattle,
"Commercial" => PossibleUse::Commercial,
"Dairy" => PossibleUse::Dairy,
"Development" => PossibleUse::Development,
"Farm" => PossibleUse::Farm,
"Fishery" => PossibleUse::Fishery,
"Grazing" => PossibleUse::Grazing,
"Highway/Tourist Service" => PossibleUse::HighwayTouristService,
"Horses" => PossibleUse::Horses,
"Hunting" => PossibleUse::Hunting,
"Industrial" => PossibleUse::Industrial,
"Investment" => PossibleUse::Investment,
"Livestock" => PossibleUse::Livestock,
"Manufactured Home" => PossibleUse::ManufacturedHome,
"Mini-Storage" => PossibleUse::MiniStorage,
"Multi-Family" => PossibleUse::MultiFamily,
"Orchard" => PossibleUse::Orchard,
"Other" => PossibleUse::Other,
"Pasture" => PossibleUse::Pasture,
"Place of Worship" => PossibleUse::PlaceofWorship,
"Poultry" => PossibleUse::Poultry,
"Ranch" => PossibleUse::Ranch,
"Recreational" => PossibleUse::Recreational,
"Residential" => PossibleUse::Residential,
"Retail" => PossibleUse::Retail,
"See Remarks" => PossibleUse::SeeRemarks,
"Single Family" => PossibleUse::SingleFamily,
"Subdevelopment" => PossibleUse::Subdevelopment,
"Timber" => PossibleUse::Timber,
"Unimproved" => PossibleUse::Unimproved,
"Vacant" => PossibleUse::Vacant,
"Warehouse" => PossibleUse::Warehouse,
_ => PossibleUse::OpenEnumeration(s.into()),
}
}
}
impl<'a> From<&'a PossibleUse> for &'a str {
fn from(s: &'a PossibleUse) -> &'a str {
match s {
PossibleUse::Agricultural => "Agricultural",
PossibleUse::Cattle => "Cattle",
PossibleUse::Commercial => "Commercial",
PossibleUse::Dairy => "Dairy",
PossibleUse::Development => "Development",
PossibleUse::Farm => "Farm",
PossibleUse::Fishery => "Fishery",
PossibleUse::Grazing => "Grazing",
PossibleUse::HighwayTouristService => "Highway/Tourist Service",
PossibleUse::Horses => "Horses",
PossibleUse::Hunting => "Hunting",
PossibleUse::Industrial => "Industrial",
PossibleUse::Investment => "Investment",
PossibleUse::Livestock => "Livestock",
PossibleUse::ManufacturedHome => "Manufactured Home",
PossibleUse::MiniStorage => "Mini-Storage",
PossibleUse::MultiFamily => "Multi-Family",
PossibleUse::Orchard => "Orchard",
PossibleUse::Other => "Other",
PossibleUse::Pasture => "Pasture",
PossibleUse::PlaceofWorship => "Place of Worship",
PossibleUse::Poultry => "Poultry",
PossibleUse::Ranch => "Ranch",
PossibleUse::Recreational => "Recreational",
PossibleUse::Residential => "Residential",
PossibleUse::Retail => "Retail",
PossibleUse::SeeRemarks => "See Remarks",
PossibleUse::SingleFamily => "Single Family",
PossibleUse::Subdevelopment => "Subdevelopment",
PossibleUse::Timber => "Timber",
PossibleUse::Unimproved => "Unimproved",
PossibleUse::Vacant => "Vacant",
PossibleUse::Warehouse => "Warehouse",
PossibleUse::OpenEnumeration(s) => s,
}
}
}
impl Serialize for PossibleUse {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: serde::Serializer,
{
serializer.serialize_str(self.into())
}
}
impl<'de> Deserialize<'de> for PossibleUse {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: serde::Deserializer<'de>,
{
let s = String::deserialize(deserializer)?;
Ok(From::from(s))
}
}