StackFrame

Struct StackFrame 

Source
pub struct StackFrame {
    pub location: &'static Location<'static>,
    pub message: String,
}
Expand description

Represents a single frame in the virtual stack trace.

Each frame captures the location where an error was propagated and the associated error message. This provides precise context about the error propagation path without the overhead of system backtraces.

Fields§

§location: &'static Location<'static>

Location where the error occurred or was propagated

§message: String

Error message for this frame

Implementations§

Source§

impl StackFrame

Source

pub fn new(location: &'static Location<'static>, message: String) -> Self

Creates a new stack frame with the given location and message.

§Arguments
  • location - The location where the error occurred, typically from std::panic::Location::caller()
  • message - A descriptive message for this error frame
§Example
use snafu_virtstack::StackFrame;
use std::panic::Location;

#[track_caller]
fn create_frame() -> StackFrame {
    StackFrame::new(
        Location::caller(),
        "Something went wrong".to_string()
    )
}

Trait Implementations§

Source§

impl Clone for StackFrame

Source§

fn clone(&self) -> StackFrame

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StackFrame

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for StackFrame

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the stack frame showing the message and location information.

The format is: {message} at {file}:{line}:{column}

§Example Output
Failed to read configuration file at src/config.rs:42:15

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.