pub trait EmbeddingError: std::error::Error + Send + Sync + 'static {}
impl<T> EmbeddingError for T where T: std::error::Error + Send + Sync + 'static {}
#[derive(Debug, thiserror::Error)]
pub enum DummyError {
#[error("model load failed: {0}")]
Load(String),
#[error("embed failed: {0}")]
Embed(String),
#[error("other: {0}")]
Other(String),
}
#[cfg(test)]
mod tests {
use super::{DummyError, EmbeddingError};
fn require_embedding_error<E: EmbeddingError>() {}
fn assert_send_sync<T: Send + Sync + 'static>() {}
#[test]
fn display_load() {
let e = DummyError::Load("no safetensors".to_owned());
assert_eq!(format!("{e}"), "model load failed: no safetensors");
}
#[test]
fn dummy_error_satisfies_embedding_error() {
require_embedding_error::<DummyError>();
}
#[test]
fn dummy_error_is_send_sync_static() {
assert_send_sync::<DummyError>();
}
}