51 lines · 1.3 KB · Rust
RawDownload
mod error;mod exn; mod utils {    use gix_error::{ErrorExt, Exn, Message, message};     pub fn new_tree_error() -> Exn<Message> {        let e1 = message("E1").raise();        let e3 = e1.raise(message("E3"));         let e9 = message("E9").raise();        let e10 = e9.raise(message("E10"));         let e11 = message("E11").raise();        let e12 = e11.raise(message("E12"));         let e5 = Exn::raise_all([e3, e10, e12], message("E5"));         let e2 = message("E2").raise();        let e4 = e2.raise(message("E4"));         let e7 = message("E7").raise();        let e8 = e7.raise(message("E8"));         Exn::raise_all([e5, e4, e8], message("E6"))    }     pub fn debug_string(input: impl std::fmt::Debug) -> String {        fixup_paths(format!("{input:?}"))    }     pub fn fixup_paths(input: String) -> String {        if cfg!(windows) { input.replace('\\', "/") } else { input }    }     #[derive(Debug)]    pub struct ErrorWithSource(pub &'static str, pub Message);     impl std::fmt::Display for ErrorWithSource {        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {            write!(f, "{}", self.0)        }    }     impl std::error::Error for ErrorWithSource {        fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {            Some(&self.1)        }    }}pub use utils::*;