pub trait Parser: Send + Sync {
type Elem: Element;
type Rel: Relationship;
type Error: Error;
// Required methods
fn parse(
&self,
source: &str,
path: &Path,
) -> Result<ParseResult<Self::Elem, Self::Rel>, Self::Error>;
fn validate(&self, source: &str) -> Vec<Diagnostic>;
}