use chumsky::prelude::*;
use crate::MetarError;
pub trait Parsable
where
Self: Sized,
{
fn parser<'src>() -> impl Parser<'src, &'src str, Self, extra::Err<MetarError<'src>>>;
fn parse(input: &str) -> Result<Self, Vec<MetarError<'_>>> {
Self::parser().parse(input).into_result()
}
}