Skip to main content

caldir_core/provider/transport/
error.rs

1use std::{path::PathBuf, time::Duration};
2
3#[derive(Debug, thiserror::Error)]
4#[non_exhaustive]
5pub enum ProviderTransportError {
6    #[error("failed to spawn provider executable {0}")]
7    SpawnBinary(PathBuf, #[source] std::io::Error),
8
9    #[error("failed to spawn provider")]
10    Spawn(#[source] std::io::Error),
11
12    #[error("failed to exchange with provider")]
13    Io(#[source] std::io::Error),
14
15    #[error("Provider response was not valid UTF-8")]
16    BadUtf8,
17
18    #[error("Provider returned no response")]
19    EmptyResponse,
20
21    #[error("Provider exited with status {code:?}")]
22    NonZeroExit { code: Option<i32> },
23
24    #[error("Provider timed out after {0:?}")]
25    Timeout(Duration),
26}