use super::{Field, FieldError};
use std::str::FromStr;
#[derive(Debug, PartialEq)]
pub enum WaypointUsage {
HiLoAltitude,
HiAltitude,
LoAltitude,
TerminalOnly,
RNAV,
}
impl Field for WaypointUsage {}
impl FromStr for WaypointUsage {
type Err = FieldError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
match &s[29..31] {
" B" => Ok(Self::HiLoAltitude),
" H" => Ok(Self::HiAltitude),
" L" => Ok(Self::LoAltitude),
" " => Ok(Self::TerminalOnly),
"R " => Ok(Self::RNAV),
_ => Err(FieldError::InvalidValue("unknown waypoint usage")),
}
}
}