clog/
error.rs

1use std::{path::PathBuf, result::Result as StdResult};
2
3use thiserror::Error;
4
5pub type Result<T> = StdResult<T, Error>;
6
7/// An enum for describing and handling various errors encountered while dealing
8/// with `clog` building, or writing of changelogs.
9#[derive(Debug, Error)]
10pub enum Error {
11    #[error("Found unknown component '{0}' that does not correspond to a Changelog Section")]
12    UnknownComponent(String),
13
14    #[error("failed to parse config file: {0}")]
15    ConfigParse(PathBuf),
16
17    #[error("incorrect format for config file: {0}")]
18    ConfigFormat(PathBuf),
19
20    #[error("cannot get current directory")]
21    CurrentDir,
22
23    #[error("unrecognized link-style field")]
24    LinkStyle,
25
26    #[error("fatal I/O error with output file")]
27    Io(#[from] std::io::Error),
28
29    #[error("failed to convert date/time to string format")]
30    TimeFormat(#[from] time::error::Format),
31
32    #[error("failed to convert date/time to string format")]
33    Time(#[from] time::Error),
34
35    #[error("failed to convert {0} to valid ChangelogFormat")]
36    ChangelogFormat(String),
37
38    #[error("Failed to parse TOML configuration file")]
39    Toml(#[from] toml::de::Error),
40
41    #[error("unknown fatal error")]
42    Unknown,
43}