caldir-core 0.17.3

Core library for caldir calendar storage, sync, and provider protocol
Documentation
use std::{path::PathBuf, time::Duration};

#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum ProviderTransportError {
    #[error("failed to spawn provider executable {0}")]
    SpawnBinary(PathBuf, #[source] std::io::Error),

    #[error("failed to spawn provider")]
    Spawn(#[source] std::io::Error),

    #[error("failed to exchange with provider")]
    Io(#[source] std::io::Error),

    #[error("Provider response was not valid UTF-8")]
    BadUtf8,

    #[error("Provider returned no response")]
    EmptyResponse,

    #[error("Provider exited with status {code:?}")]
    NonZeroExit { code: Option<i32> },

    #[error("Provider timed out after {0:?}")]
    Timeout(Duration),
}