use crate::parser;
use std::{future::Future, path::Path};
pub trait Parser: Default + Send + Sync + Clone {
#[allow(missing_docs)]
type ParseContext;
#[allow(missing_docs)]
type ParseOutput;
fn parse(
&self,
file: &Path,
ctx: &Self::ParseContext,
) -> impl Future<Output = Result<Self::ParseOutput>> + Send;
}
#[allow(missing_docs)]
#[doc(hidden)]
pub type Result<T> = std::result::Result<T, parser::Error>;