miden_node_utils/lib.rs
1pub mod config;
2pub mod crypto;
3pub mod formatting;
4pub mod grpc;
5pub mod logging;
6pub mod tracing;
7pub mod version;
8
9pub trait ErrorReport: std::error::Error {
10 fn as_report(&self) -> String {
11 use std::fmt::Write;
12 let mut report = self.to_string();
13
14 // SAFETY: write! is suggested by clippy, and is trivially safe usage.
15 std::iter::successors(self.source(), |child| child.source())
16 .for_each(|source| write!(report, "\nCaused by: {source}").unwrap());
17
18 report
19 }
20}
21
22impl<T: std::error::Error> ErrorReport for T {}