use std::error::Error; use log::error; /// Wrapper for `Result>`. /// /// # Example /// ``` /// use rude::result::RudeResult; /// /// fn example_result() -> RudeResult<()> { /// Ok(()) /// } /// ``` pub type RudeResult = Result>; /// Wrap `?` with an error message into the log. /*pub fn try_log>, S: Into>( result: Result, message: S, ) -> RudeResult { try_error(result, message, true) }*/ /// Wrap `?` with an error message to stdout. pub fn try_print>, S: Into>( result: Result, message: S, ) -> RudeResult { try_error(result, message, false) } /// Wrap `?` with an error message to either stdout or the log. /// /// * `result` - `Result` type to check for `Error`. /// * `message` - Message to send to either log or stdout if `result` is `Error`. /// * `log` - `true` to send `message` to log, otherwise send to stdout. //pub fn try_error>(result: Result, message: S, log: bool) -> Result { pub fn try_error>, S: Into>( result: Result, message: S, log: bool, ) -> RudeResult { match result { Ok(r) => Ok(r), Err(e) => { let e = e.into(); if log { error!("{} :: {}", message.into(), e); } else { println!("{} :: {}", message.into(), e); } Err(e.into()) } } }