1#[derive(Debug, thiserror::Error, miette::Diagnostic)]
2#[error("{message}")]
3#[diagnostic()]
4pub struct MultiError {
5 message: String,
6 #[related]
7 errors: Vec<miette::Report>,
8}
9
10impl MultiError {
11 pub fn new(message: impl Into<String>, errors: Vec<miette::Report>) -> Self {
12 Self {
13 message: message.into(),
14 errors,
15 }
16 }
17}
18impl From<miette::Report> for MultiError {
19 fn from(report: miette::Report) -> Self {
20 Self {
21 message: "Something went wrong".to_string(),
22 errors: vec![report],
23 }
24 }
25}