pub struct BacktraceFmt<'a, 'b> { /* private fields */ }
Expand description
A formatter for backtraces.
This type can be used to print a backtrace regardless of where the backtrace
itself comes from. If you have a Backtrace
type then its Debug
implementation already uses this printing format.
Implementations§
Source§impl<'a, 'b> BacktraceFmt<'a, 'b>
impl<'a, 'b> BacktraceFmt<'a, 'b>
Sourcepub fn new(
fmt: &'a mut Formatter<'b>,
format: PrintFmt,
print_path: &'a mut (dyn FnMut(&mut Formatter<'_>, BytesOrWideString<'_>) -> Result<(), Error> + 'b),
) -> BacktraceFmt<'a, 'b>
pub fn new( fmt: &'a mut Formatter<'b>, format: PrintFmt, print_path: &'a mut (dyn FnMut(&mut Formatter<'_>, BytesOrWideString<'_>) -> Result<(), Error> + 'b), ) -> BacktraceFmt<'a, 'b>
Create a new BacktraceFmt
which will write output to the provided
fmt
.
The format
argument will control the style in which the backtrace is
printed, and the print_path
argument will be used to print the
BytesOrWideString
instances of filenames. This type itself doesn’t do
any printing of filenames, but this callback is required to do so.
Sourcepub fn add_context(&mut self) -> Result<(), Error>
pub fn add_context(&mut self) -> Result<(), Error>
Prints a preamble for the backtrace about to be printed.
This is required on some platforms for backtraces to be fully
symbolicated later, and otherwise this should just be the first method
you call after creating a BacktraceFmt
.
Sourcepub fn frame(&mut self) -> BacktraceFrameFmt<'_, 'a, 'b>
pub fn frame(&mut self) -> BacktraceFrameFmt<'_, 'a, 'b>
Adds a frame to the backtrace output.
This commit returns an RAII instance of a BacktraceFrameFmt
which can be used
to actually print a frame, and on destruction it will increment the
frame counter.
Sourcepub fn finish(&mut self) -> Result<(), Error>
pub fn finish(&mut self) -> Result<(), Error>
Completes the backtrace output.
This is currently a no-op but is added for future compatibility with backtrace formats.
Auto Trait Implementations§
impl<'a, 'b> Freeze for BacktraceFmt<'a, 'b>
impl<'a, 'b> !RefUnwindSafe for BacktraceFmt<'a, 'b>
impl<'a, 'b> !Send for BacktraceFmt<'a, 'b>
impl<'a, 'b> !Sync for BacktraceFmt<'a, 'b>
impl<'a, 'b> Unpin for BacktraceFmt<'a, 'b>
impl<'a, 'b> !UnwindSafe for BacktraceFmt<'a, 'b>
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more