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 duplicate 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
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>
impl<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> Freeze for UnwindContextWithFmt<W, T, P>
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