Skip to main content

memoir_core/nli/
error.rs

1/// Failure modes for the [`crate::nli::NliClassifier`].
2#[derive(Debug, thiserror::Error)]
3pub enum NliError {
4    /// The model or tokenizer file could not be downloaded from HuggingFace.
5    #[error("failed to download NLI model: {0}")]
6    Download(String),
7
8    /// The ONNX model could not be loaded into an inference session.
9    #[error("failed to load NLI model: {0}")]
10    ModelLoad(String),
11
12    /// The tokenizer file could not be parsed.
13    #[error("failed to load NLI tokenizer: {0}")]
14    TokenizerLoad(String),
15
16    /// Tokenization or model inference failed at classification time.
17    #[error("NLI inference error: {0}")]
18    Inference(String),
19}
20
21#[cfg(test)]
22mod tests {
23    use super::*;
24
25    #[test]
26    fn should_render_model_load_error_with_message() {
27        let err = NliError::ModelLoad("session init failed".to_string());
28
29        assert_eq!(err.to_string(), "failed to load NLI model: session init failed");
30    }
31
32    #[test]
33    fn should_render_inference_error_with_message() {
34        let err = NliError::Inference("tokenization failed".to_string());
35
36        assert_eq!(err.to_string(), "NLI inference error: tokenization failed");
37    }
38}