tmux_backup/
error.rs

1//! This crate's error type.
2
3use std::io;
4
5use crate::tmux;
6
7/// Describes all errors from this crate.
8///
9/// - errors during backup operations.
10/// - errors reported by tmux
11#[derive(thiserror::Error, Debug)]
12pub enum Error {
13    /// Errors occuring during tmux operations.
14    #[error("Tmux operation failed: `{source}`")]
15    TmuxError {
16        #[from]
17        /// Source error.
18        source: tmux::error::Error,
19    },
20
21    /// Unsupported archive version.
22    #[error("unsupported archive version: `{0}`")]
23    ArchiveVersion(String),
24
25    /// Backup file contains no metadata.
26    #[error("missing metadata: `{0}`")]
27    MissingMetadata(String),
28
29    /// Configuration error.
30    #[error("unexpected configuration: `{0}`")]
31    ConfigError(String),
32
33    /// Serde error.
34    #[error("serde error: `{source}`")]
35    Serde {
36        #[from]
37        /// Source error,
38        source: serde_json::Error,
39    },
40
41    /// Some IO error.
42    #[error("failed with io: `{source}`")]
43    Io {
44        #[from]
45        /// Source error.
46        source: io::Error,
47    },
48}