soph_core/error/
container.rs

1#[derive(thiserror::Error, Debug)]
2pub enum ContainerError {
3    #[cfg(feature = "anyhow")]
4    #[error(transparent)]
5    Anyhow(#[from] anyhow::Error),
6
7    #[error(transparent)]
8    Box(#[from] crate::BoxError),
9
10    #[error("[instance] `{instance}` boot failed: {source}")]
11    Boot {
12        instance: String,
13        #[source]
14        source: Box<Self>,
15    },
16
17    #[error("[instance] `{instance}` clean failed: {source}")]
18    Clean {
19        instance: String,
20        #[source]
21        source: Box<Self>,
22    },
23
24    #[cfg(feature = "eyre")]
25    #[error(transparent)]
26    Eyre(#[from] eyre::Report),
27
28    #[error("{0}")]
29    Message(String),
30
31    #[error("[instance] `{instance}` register failed: {source}")]
32    Register {
33        instance: String,
34        #[source]
35        source: Box<Self>,
36    },
37
38    #[error("[instance] `{instance}` not registered")]
39    Resolve { instance: String },
40}
41
42impl ContainerError {
43    pub fn message(msg: impl Into<String>) -> Self {
44        Self::Message(msg.into())
45    }
46}