···2121/// implementations will be in the `llm/` directory.
2222#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
2323#[serde(rename_all = "lowercase")]
2424+#[non_exhaustive]
2425pub enum ModelProvider {
2526 /// Anthropic model provider
2627 Anthropic,
···6061/// generation, you will find the structs in `llm/` or `embedding/`.
6162#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
6263#[serde(rename_all = "lowercase")]
6464+#[non_exhaustive]
6365pub enum EmbeddingProvider {
6466 /// Cohere embedding provider
6567 Cohere,
···126128/// state, but the [`crate::embedding::voyage::VoyageAIClient`] changes this to
127129/// [`BatchJobState::InProgress`].
128130#[derive(Debug, PartialEq, Eq)]
131131+#[non_exhaustive]
129132pub enum BatchJobState {
130133 /// The batch job has been created, but it may not have started processing.
131134 Created,
···216219/// Providers of batch embedding APIs. Structs corresponding to these should implement
217220/// [`BatchAPIProvider`]. By definition, this enum is a subset of [`EmbeddingProvider`].
218221#[derive(Clone, Debug)]
222222+#[non_exhaustive]
219223pub enum BatchEmbeddingProvider {
220224 /// Voyage AI batch API provider
221225 VoyageAI,
···236240/// should implement the `Rerank` trait.
237241#[derive(Copy, Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
238242#[serde(rename_all = "lowercase")]
243243+#[non_exhaustive]
239244pub enum RerankerProvider {
240245 /// Cohere reranking provider
241246 Cohere,
···77/// A wrapper for all kinds of errors to one enum that tells us what happened.
88/// Variant error messages are handled via thiserror.
99#[derive(Debug, Error)]
1010+#[non_exhaustive]
1011pub enum LLMError {
1112 /// API errors that likely represent credential errors.
1213 #[error("Got 4xx response, possible credentials error: {0}")]
···77/// The canonical list of providers, regardless of capabilities. The
88/// [`super::registry::ProviderRegistry`] is responsible for maintaining that information.
99#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
1010+#[non_exhaustive]
1011#[allow(missing_docs)]
1112pub enum ProviderId {
1213 Anthropic,
···34343535/// Errors that can occur when working with LanceDB
3636#[derive(Debug, Error)]
3737+#[non_exhaustive]
3738pub enum LanceError {
3839 /// Error connecting to LanceDB
3940 #[error("LanceDB connection error: {0}")]
+1
zqa-rag/src/vector/backup.rs
···991010/// Errors that can occur during backup operations
1111#[derive(Debug, Error)]
1212+#[non_exhaustive]
1213pub enum BackupError {
1314 /// LanceDB library error during backup operations
1415 #[error("LanceDB library error during backup: {0}")]
···134134135135/// A general error struct for Zotero library parsing.
136136#[derive(Clone, Debug, Error)]
137137+#[non_exhaustive]
137138pub enum LibraryParsingError {
138139 #[error("SQLite error: {0}. Try closing Zotero, which can sometimes hold a lock.")]
139140 SqlError(String),