anathema_runtime/
error.rs1use std::error::Error as StdError;
2use std::fmt::{self, Display};
3
4use anathema_templates::error::Error as TemplateError;
5
6pub type Result<T> = std::result::Result<T, Error>;
7
8#[derive(Debug)]
9pub enum Error {
10 Template(TemplateError),
11 Widget(anathema_widgets::error::Error),
12 Notify(notify::Error),
13 Stop,
14 Reload,
15 InvalidComponentName,
16 Resolver(anathema_value_resolver::Error),
17}
18
19impl Display for Error {
20 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21 match self {
22 Self::Template(template) => write!(f, "{template}"),
23 Self::Stop => write!(f, "stopping"),
24 Self::Reload => write!(f, "reloading"),
25 Self::Notify(err) => write!(f, "{err}"),
26 Self::Widget(err) => write!(f, "{err}"),
27 Self::Resolver(err) => write!(f, "{err}"),
28 Self::InvalidComponentName => write!(f, "no such component"),
29 }
30 }
31}
32
33impl StdError for Error {}
34
35impl From<TemplateError> for Error {
36 fn from(err: TemplateError) -> Self {
37 Self::Template(err)
38 }
39}
40
41impl From<notify::Error> for Error {
42 fn from(err: notify::Error) -> Self {
43 Self::Notify(err)
44 }
45}
46
47impl From<anathema_widgets::error::Error> for Error {
48 fn from(value: anathema_widgets::error::Error) -> Self {
49 Self::Widget(value)
50 }
51}
52
53impl From<anathema_value_resolver::Error> for Error {
54 fn from(value: anathema_value_resolver::Error) -> Self {
55 Self::Resolver(value)
56 }
57}