Skip to main content

memoir_core/embedding/
error.rs

1/// Failure modes for [`crate::embedding::EmbeddingModel`] implementations.
2#[derive(Debug, thiserror::Error)]
3pub enum EmbeddingError {
4    #[error("embedding model initialization failed: {0}")]
5    Init(String),
6
7    #[error("embedding failed: {0}")]
8    Embed(String),
9}
10
11#[cfg(test)]
12mod tests {
13    use super::*;
14
15    #[test]
16    fn should_render_init_error_with_message() {
17        let err = EmbeddingError::Init("model file missing".to_string());
18
19        assert_eq!(
20            err.to_string(),
21            "embedding model initialization failed: model file missing"
22        );
23    }
24
25    #[test]
26    fn should_render_embed_error_with_message() {
27        let err = EmbeddingError::Embed("input too long".to_string());
28
29        assert_eq!(err.to_string(), "embedding failed: input too long");
30    }
31}