#![warn(missing_docs)]
#![doc = include_str!("../README.md")]
mod language;
mod model;
pub use language::{Language, ParseLanguageError};
#[derive(Debug)]
pub struct Detection {
predictions: Vec<(f32, Language)>,
}
impl Detection {
pub fn language(&self) -> Option<Language> {
self.predictions.first().map(|(_, language)| *language)
}
pub fn top_languages(&self) -> impl Iterator<Item = (f32, Language)> + '_ {
self.predictions.iter().copied()
}
pub(crate) fn from_predictions(predictions: Vec<(f32, Language)>) -> Self {
Self { predictions }
}
}
pub fn detect(source: impl AsRef<[u8]>) -> Detection {
model::detect(source.as_ref())
}