#![allow(unused_parens)]
mod data;
#[inline]
pub fn state_by_id(id: u8) -> Option<&'static str> {
county_by_ids(id, 0)
}
#[inline]
pub fn county_by_ids(state_id: u8, county_id: u16) -> Option<&'static str> {
let counties = data::COUNTIES.get(state_id.checked_sub(1)? as usize).copied()??;
counties
.get(county_id as usize)
.copied()
.flatten()
}
#[inline]
pub fn state_and_county_by_ids(state_id: u8, county_id: u16) -> Option<(&'static str, &'static str)> {
let counties = data::COUNTIES.get(state_id.checked_sub(1)? as usize).copied()??;
let state = counties.get(0).copied().flatten()?;
let county = counties
.get(county_id as usize)
.copied()
.flatten()?;
Some((state, county))
}
#[inline]
pub fn county_by_fips_id(id: &str) -> Option<&'static str> {
if(id.len() != 5) {
return None;
}
county_by_ids(id.get(0..=1)?.parse().ok()?, id.get(2..=4)?.parse().ok()?)
}
#[inline]
pub fn state_and_county_by_fips_id(id: &str) -> Option<(&'static str, &'static str)> {
if(id.len() != 5) {
return None;
}
state_and_county_by_ids(id.get(0..=1)?.parse().ok()?, id.get(2..=4)?.parse().ok()?)
}
#[inline]
pub fn counties_by_state_fips_id(state_id: u8) -> Option<impl Iterator<Item = (u16, &'static str)>> {
let result = data::COUNTIES
.get(state_id.checked_sub(1)? as usize)
.copied()??
.iter()
.copied()
.enumerate()
.filter_map(|(i, county)| Some((i as u16, county?)));
Some(result)
}