use chumsky::prelude::*;
use crate::traits::Parsable;
#[derive(PartialEq, Eq, Clone, Debug)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum ColourCode {
Blue,
White,
Green,
Yellow,
Amber,
Red,
}
impl Parsable for ColourCode {
fn parser<'src>() -> impl Parser<'src, &'src str, Self, extra::Err<crate::MetarError<'src>>> {
choice((
just("BLU").map(|_| ColourCode::Blue),
just("WHT").map(|_| ColourCode::White),
just("GRN").map(|_| ColourCode::Green),
just("YLO").map(|_| ColourCode::Yellow),
just("AMB").map(|_| ColourCode::Amber),
just("RED").map(|_| ColourCode::Red),
))
}
}