Struct unwind_context::UnwindContextWithIo
source · pub struct UnwindContextWithIo<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> { /* private fields */ }
Available on crate feature
std
only.Expand description
A structure representing a scoped guard with unwind context with
core::fmt::Write
writer.
If dropped during unwind it will write a message to a given writer containing given function or scope context.
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, UnwindContextWithIo};
fn func(foo: u32, bar: &str, secret: &str) {
let _ctx: UnwindContextWithIo<_, _, _> = unwind_context!(fn(foo, bar, ...));
// ...
}
Implementations§
source§impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> UnwindContextWithIo<W, T, P>
impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> UnwindContextWithIo<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
or unwind_context_with_io
instead.
Trait Implementations§
source§impl<W: Clone + Write, T: Clone + Debug + DebugAnsiColored, P: Clone + PanicDetector> Clone for UnwindContextWithIo<W, T, P>
impl<W: Clone + Write, T: Clone + Debug + DebugAnsiColored, P: Clone + PanicDetector> Clone for UnwindContextWithIo<W, T, P>
source§fn clone(&self) -> UnwindContextWithIo<W, T, P>
fn clone(&self) -> UnwindContextWithIo<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 UnwindContextWithIo<W, T, P>
impl<W: Debug + Write, T: Debug + Debug + DebugAnsiColored, P: Debug + PanicDetector> Debug for UnwindContextWithIo<W, T, P>
source§impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> Drop for UnwindContextWithIo<W, T, P>
impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> Drop for UnwindContextWithIo<W, T, P>
source§impl<W: Hash + Write, T: Hash + Debug + DebugAnsiColored, P: Hash + PanicDetector> Hash for UnwindContextWithIo<W, T, P>
impl<W: Hash + Write, T: Hash + Debug + DebugAnsiColored, P: Hash + PanicDetector> Hash for UnwindContextWithIo<W, T, P>
source§impl<W: Ord + Write, T: Ord + Debug + DebugAnsiColored, P: Ord + PanicDetector> Ord for UnwindContextWithIo<W, T, P>
impl<W: Ord + Write, T: Ord + Debug + DebugAnsiColored, P: Ord + PanicDetector> Ord for UnwindContextWithIo<W, T, P>
source§fn cmp(&self, other: &UnwindContextWithIo<W, T, P>) -> Ordering
fn cmp(&self, other: &UnwindContextWithIo<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 UnwindContextWithIo<W, T, P>
impl<W: PartialEq + Write, T: PartialEq + Debug + DebugAnsiColored, P: PartialEq + PanicDetector> PartialEq for UnwindContextWithIo<W, T, P>
source§fn eq(&self, other: &UnwindContextWithIo<W, T, P>) -> bool
fn eq(&self, other: &UnwindContextWithIo<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 UnwindContextWithIo<W, T, P>
impl<W: PartialOrd + Write, T: PartialOrd + Debug + DebugAnsiColored, P: PartialOrd + PanicDetector> PartialOrd for UnwindContextWithIo<W, T, P>
source§fn partial_cmp(&self, other: &UnwindContextWithIo<W, T, P>) -> Option<Ordering>
fn partial_cmp(&self, other: &UnwindContextWithIo<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 UnwindContextWithIo<W, T, P>
impl<W: Write, T: Debug + DebugAnsiColored, P: PanicDetector> StructuralPartialEq for UnwindContextWithIo<W, T, P>
Auto Trait Implementations§
impl<W, T, P> RefUnwindSafe for UnwindContextWithIo<W, T, P>
impl<W, T, P> Send for UnwindContextWithIo<W, T, P>
impl<W, T, P> Sync for UnwindContextWithIo<W, T, P>
impl<W, T, P> Unpin for UnwindContextWithIo<W, T, P>
impl<W, T, P> UnwindSafe for UnwindContextWithIo<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