use strum_macros::{EnumIter, EnumString, IntoStaticStr};
#[derive(Debug, Hash, Clone, Copy, PartialEq, Eq, EnumString, IntoStaticStr, EnumIter)]
#[allow(missing_docs)]
pub enum StateProv {
AL, AK, AZ, AR, CA, CO, CT, DE, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, OH, OK, OR, PA, RI, SC, SD, TN, TX, UT, VT, VA, WA, WV, WI, WY, AS, DC, FM, MH, MP, PW, PR, VI, }
impl StateProv {
pub fn as_static_str(self) -> &'static str {
self.into()
}
}
#[cfg(test)]
mod unit {
use super::*;
use std::str::FromStr;
use strum::IntoEnumIterator;
#[test]
fn test_to_string_for_state_prov() {
assert_eq!(StateProv::AL.as_static_str(), "AL");
}
#[test]
fn test_from_string_for_state_prov() {
assert_eq!(StateProv::from_str("AL").unwrap(), StateProv::AL);
}
#[test]
fn round_trip_strings_for_state_prov() {
for state_prov in StateProv::iter() {
assert_eq!(
StateProv::from_str(state_prov.as_static_str()).unwrap(),
state_prov
);
}
}
}