From 1fb98e5cecc740a0475d6263bb91724cc13bea03 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sun, 7 Mar 2021 18:12:33 +0100 Subject: Add inspect variant for errors Signed-off-by: Matthias Beyer --- src/lib.rs | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 705fecd..9f0a28d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -38,3 +38,42 @@ impl ResultInspectRef for Result } } } + + +pub trait ResultInspectErr + where F: FnOnce(&E), + E: Sized +{ + fn inspect_err(self, f: F) -> Self; +} + +pub trait ResultInspectErrRef + where F: FnOnce(&E), + E: Sized +{ + fn inspect_err(&self, f: F); +} + +impl ResultInspectErr for Result + where F: FnOnce(&E), + E: Sized +{ + fn inspect_err(self, f: F) -> Self { + if let Err(ref e) = self.as_ref() { + (f)(&e); + } + + self + } +} + +impl ResultInspectErrRef for Result + where F: FnOnce(&E), + E: Sized +{ + fn inspect_err(&self, f: F) { + if let Err(ref e) = self { + (f)(&e); + } + } +} -- cgit v1.2.3