From 84c305efe7162a5492a8db87ec31c642a96adb76 Mon Sep 17 00:00:00 2001 From: "Carol (Nichols || Goulding)" <193874+carols10cents@users.noreply.github.com> Date: Mon, 21 Jan 2019 22:02:37 -0500 Subject: [PATCH] Add an `is_empty` method to Backtrace (#297) --- failure_derive/tests/wraps.rs | 4 ++++ src/backtrace/mod.rs | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/failure_derive/tests/wraps.rs b/failure_derive/tests/wraps.rs index 38218a2..2049273 100644 --- a/failure_derive/tests/wraps.rs +++ b/failure_derive/tests/wraps.rs @@ -58,6 +58,8 @@ fn wrap_backtrace_error() { .and_then(|err| err.downcast_ref::()) .is_some()); assert!(err.backtrace().is_some()); + assert!(err.backtrace().is_empty()); + assert_eq!(err.backtrace().is_empty(), err.backtrace().to_string().trim().is_empty()); } #[derive(Fail, Debug)] @@ -91,4 +93,6 @@ fn wrap_enum_error() { .and_then(|err| err.downcast_ref::()) .is_some()); assert!(err.backtrace().is_some()); + assert!(err.backtrace().is_empty()); + assert_eq!(err.backtrace().is_empty(), err.backtrace().to_string().trim().is_empty()); } diff --git a/src/backtrace/mod.rs b/src/backtrace/mod.rs index 2d3ab8d..9eba16d 100644 --- a/src/backtrace/mod.rs +++ b/src/backtrace/mod.rs @@ -52,6 +52,16 @@ without_backtrace! { pub(crate) fn is_none(&self) -> bool { true } + + /// Returns true if displaying this backtrace would be an empty string. + /// + /// > (We have detected that this crate was documented with no_std + /// > compatibility turned on. The version of this crate that has been + /// > documented here will never generate a backtrace and this method + /// > will always return true.) + pub fn is_empty(&self) -> bool { + true + } } impl Default for Backtrace { @@ -118,6 +128,11 @@ with_backtrace! { pub(crate) fn is_none(&self) -> bool { self.internal.is_none() } + + /// Returns true if displaying this backtrace would be an empty string. + pub fn is_empty(&self) -> bool { + self.internal.is_none() + } } impl Default for Backtrace {