Skip to main content

caldir_core/provider/
error.rs

1use std::path::PathBuf;
2
3use super::ProviderSlug;
4use super::transport::ProviderTransportError;
5
6#[derive(Debug, thiserror::Error)]
7#[non_exhaustive]
8pub enum ProviderError {
9    #[error("provider {0}")]
10    TransportFor(ProviderSlug, #[source] ProviderTransportError),
11
12    #[error("Provider file is not executable: {0}")]
13    NotExecutable(PathBuf),
14
15    #[error("Provider filename does not match `caldir-provider-<name>`: {0}")]
16    InvalidProviderFilename(PathBuf),
17
18    #[error("Provider {0} not found")]
19    ProviderNotFound(String),
20
21    #[error(transparent)]
22    Transport(#[from] ProviderTransportError),
23
24    #[error("failed to serialize provider request")]
25    Serialize(#[source] serde_json::Error),
26
27    #[error("failed to deserialize provider response")]
28    Deserialize(#[source] serde_json::Error),
29
30    #[error("{0}")]
31    Provider(String),
32}