talos_rust_client/
error.rs

1//! Error types for the Talos client
2
3use thiserror::Error;
4
5/// Result type alias for Talos client operations
6pub type Result<T> = std::result::Result<T, Error>;
7
8/// Error type for Talos client operations
9#[derive(Error, Debug)]
10pub enum Error {
11    /// TLS configuration error
12    #[error("TLS configuration error: {0}")]
13    TlsConfig(String),
14
15    /// Connection error
16    #[error("Connection error: {0}")]
17    Connection(#[from] tonic::transport::Error),
18
19    /// Certificate parsing error
20    #[error("Certificate parsing error: {0}")]
21    CertParse(String),
22
23    /// Key parsing error
24    #[error("Key parsing error: {0}")]
25    KeyParse(String),
26
27    /// IO error
28    #[error("IO error: {0}")]
29    Io(#[from] std::io::Error),
30
31    /// Missing required configuration
32    #[error("Missing required configuration: {0}")]
33    MissingConfig(String),
34
35    /// Talosconfig parsing error
36    #[cfg(feature = "talosconfig")]
37    #[error("Talosconfig error: {0}")]
38    TalosConfig(String),
39
40    /// Base64 decode error
41    #[cfg(feature = "talosconfig")]
42    #[error("Base64 decode error: {0}")]
43    Base64(#[from] base64::DecodeError),
44
45    /// YAML parsing error
46    #[cfg(feature = "talosconfig")]
47    #[error("YAML parsing error: {0}")]
48    Yaml(#[from] serde_yaml::Error),
49
50    /// Other errors
51    #[error("{0}")]
52    Other(String),
53}