mirror of
https://github.com/haraldh/chainerror.git
synced 2025-06-05 07:44:36 +02:00
feat: add new(Into<String>)
method for str_context!
types
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
This commit is contained in:
parent
cb9465f0df
commit
aaca6945b0
4 changed files with 10 additions and 5 deletions
|
@ -84,7 +84,7 @@ impl<T: 'static + Display + Debug> Error<T> {
|
|||
/// chainerror::str_context!(Func1Error);
|
||||
///
|
||||
/// fn func1() -> Result<(), Box<dyn Error + Send + Sync>> {
|
||||
/// func2().context(Func1Error("func1 error".into()))?;
|
||||
/// func2().context(Func1Error::new("func1 error"))?;
|
||||
/// Ok(())
|
||||
/// }
|
||||
///
|
||||
|
@ -576,7 +576,7 @@ where
|
|||
/// chainerror::str_context!(Func1Error);
|
||||
///
|
||||
/// fn func1() -> Result<(), Box<dyn Error>> {
|
||||
/// func2().context(Func1Error("func1 error".into()))?;
|
||||
/// func2().context(Func1Error::new("func1 error"))?;
|
||||
/// Ok(())
|
||||
/// }
|
||||
/// # if let Err(e) = func1() {
|
||||
|
@ -595,6 +595,11 @@ macro_rules! str_context {
|
|||
($e:ident) => {
|
||||
#[derive(Clone)]
|
||||
pub struct $e(pub String);
|
||||
impl $e {
|
||||
pub fn new<S: Into<String>>(s: S) -> Self {
|
||||
$e(s.into())
|
||||
}
|
||||
}
|
||||
impl ::std::fmt::Display for $e {
|
||||
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
|
||||
write!(f, "{}", self.0)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue