peacock_pinion/xml/
error.rs

1use derive_more::From;
2
3use super::StoreIndex;
4
5#[derive(Debug)]
6pub struct SourceReadFailureContents {
7    pub entry_index: StoreIndex,
8    pub failure_message: String,
9}
10
11#[derive(Debug, From)]
12pub enum Error {
13    #[from]
14    Native(xmltree::Error),
15
16    #[from]
17    SourceReadFailure(SourceReadFailureContents),
18
19    AlreadyInStore(StoreIndex),
20}
21
22impl std::fmt::Display for SourceReadFailureContents {
23    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
24        write!(f, "{}", self.failure_message)
25    }
26}
27
28impl std::fmt::Display for Error {
29    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
30        write!(f, "{self:?}")
31    }
32}
33
34impl std::error::Error for SourceReadFailureContents {}
35impl std::error::Error for Error {}