pub trait SourceObservation {
type Uri;
type Text;
type Version;
fn uri(&self) -> &Self::Uri;
fn text(&self) -> &Self::Text;
fn version(&self) -> Self::Version;
}
pub trait ParseIngress {
type Observation: SourceObservation;
type Parsed;
type Error;
fn parse(&self, observation: Self::Observation) -> Result<Self::Parsed, Self::Error>;
}
pub trait RelationAdmitter {
type Parsed;
type RelationGraph;
type Refusal;
fn admit(&self, parsed: Self::Parsed) -> Result<Self::RelationGraph, Self::Refusal>;
}
pub trait StaticIndexEmitter {
type RelationGraph;
type LsifDump;
type Error;
fn emit_lsif_060(&self, graph: Self::RelationGraph) -> Result<Self::LsifDump, Self::Error>;
}