#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum EngineKind {
El,
Rdfs,
Rl,
Alc,
Dl,
Swrl,
Hybrid,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum DetectedProfileKind {
El,
Rl,
Ql,
Dl,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct ResolvedRoute {
pub kind: EngineKind,
pub detected: Option<DetectedProfileKind>,
}
impl ResolvedRoute {
#[must_use]
pub fn explicit(kind: EngineKind) -> Self {
Self {
kind,
detected: None,
}
}
#[must_use]
pub fn auto(kind: EngineKind, detected: DetectedProfileKind) -> Self {
Self {
kind,
detected: Some(detected),
}
}
}
#[must_use]
pub const fn uses_dl_entailment(kind: EngineKind) -> bool {
matches!(
kind,
EngineKind::Alc | EngineKind::Dl | EngineKind::Swrl | EngineKind::Hybrid
)
}