1use std::{path::PathBuf, result::Result as StdResult};
2
3use thiserror::Error;
4
5pub type Result<T> = StdResult<T, Error>;
6
7#[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}