Struct unwind_context::UnwindContextWithFmt
source · pub struct UnwindContextWithFmt<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> { /* private fields */ }
Expand description
A structure representing a scoped guard with unwind context with
std::io::Write
writer.
If dropped during unwind it will write a message to a given writer
containing given function or scope context. If created with
unwind_context
it will write to std::io::Stderr
.
When this structure is dropped (falls out of scope) and the current thread is not unwinding, the unwind context will be forgotten.
§Examples
use unwind_context::{unwind_context_with_fmt, UnwindContextWithFmt};
fn func(foo: u32, bar: &str, secret: &str, custom_writer: &mut String) {
let _ctx: UnwindContextWithFmt<_, _, _> = unwind_context_with_fmt!(
(fn(foo, bar, ...)),
writer = custom_writer,
panic_detector = unwind_context::StdPanicDetector,
color_scheme = None,
);
// ...
}
Implementations§
source§impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> UnwindContextWithFmt<W, T, P>
impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> UnwindContextWithFmt<W, T, P>
sourcepub fn new(
data: T,
writer: W,
panic_detector: P,
color_scheme: Option<&'static AnsiColorScheme>
) -> Self
pub fn new( data: T, writer: W, panic_detector: P, color_scheme: Option<&'static AnsiColorScheme> ) -> Self
Create a new UnwindContextWithFmt
with the provided
core::fmt::Write
writer, context scope data, and color scheme.
This function is not intended to be used directly. Consider using macros
like unwind_context_with_fmt
instead.
Trait Implementations§
source§impl<W: Clone + Write, T: Clone + Debug + DebugAnsiColored, P: Clone + PanicDetector> Clone for UnwindContextWithFmt<W, T, P>
impl<W: Clone + Write, T: Clone + Debug + DebugAnsiColored, P: Clone + PanicDetector> Clone for UnwindContextWithFmt<W, T, P>
source§fn clone(&self) -> UnwindContextWithFmt<W, T, P>
fn clone(&self) -> UnwindContextWithFmt<W, T, P>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<W: Debug + Write, T: Debug + Debug + DebugAnsiColored, P: Debug + PanicDetector> Debug for UnwindContextWithFmt<W, T, P>
impl<W: Debug + Write, T: Debug + Debug + DebugAnsiColored, P: Debug + PanicDetector> Debug for UnwindContextWithFmt<W, T, P>
source§impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> Drop for UnwindContextWithFmt<W, T, P>
impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> Drop for UnwindContextWithFmt<W, T, P>
source§impl<W: Hash + Write, T: Hash + Debug + DebugAnsiColored, P: Hash + PanicDetector> Hash for UnwindContextWithFmt<W, T, P>
impl<W: Hash + Write, T: Hash + Debug + DebugAnsiColored, P: Hash + PanicDetector> Hash for UnwindContextWithFmt<W, T, P>
source§impl<W: Ord + Write, T: Ord + Debug + DebugAnsiColored, P: Ord + PanicDetector> Ord for UnwindContextWithFmt<W, T, P>
impl<W: Ord + Write, T: Ord + Debug + DebugAnsiColored, P: Ord + PanicDetector> Ord for UnwindContextWithFmt<W, T, P>
source§fn cmp(&self, other: &UnwindContextWithFmt<W, T, P>) -> Ordering
fn cmp(&self, other: &UnwindContextWithFmt<W, T, P>) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl<W: PartialEq + Write, T: PartialEq + Debug + DebugAnsiColored, P: PartialEq + PanicDetector> PartialEq for UnwindContextWithFmt<W, T, P>
impl<W: PartialEq + Write, T: PartialEq + Debug + DebugAnsiColored, P: PartialEq + PanicDetector> PartialEq for UnwindContextWithFmt<W, T, P>
source§fn eq(&self, other: &UnwindContextWithFmt<W, T, P>) -> bool
fn eq(&self, other: &UnwindContextWithFmt<W, T, P>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<W: PartialOrd + Write, T: PartialOrd + Debug + DebugAnsiColored, P: PartialOrd + PanicDetector> PartialOrd for UnwindContextWithFmt<W, T, P>
impl<W: PartialOrd + Write, T: PartialOrd + Debug + DebugAnsiColored, P: PartialOrd + PanicDetector> PartialOrd for UnwindContextWithFmt<W, T, P>
source§fn partial_cmp(&self, other: &UnwindContextWithFmt<W, T, P>) -> Option<Ordering>
fn partial_cmp(&self, other: &UnwindContextWithFmt<W, T, P>) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl<W: Eq + Write, T: Eq + Debug + DebugAnsiColored, P: Eq + PanicDetector> Eq for UnwindContextWithFmt<W, T, P>
impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> StructuralPartialEq for UnwindContextWithFmt<W, T, P>
Auto Trait Implementations§
impl<W, T, P> RefUnwindSafe for UnwindContextWithFmt<W, T, P>
impl<W, T, P> Send for UnwindContextWithFmt<W, T, P>
impl<W, T, P> Sync for UnwindContextWithFmt<W, T, P>
impl<W, T, P> Unpin for UnwindContextWithFmt<W, T, P>
impl<W, T, P> UnwindSafe for UnwindContextWithFmt<W, T, P>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more