Skip to main content

DebugInfo

Struct DebugInfo 

Source
pub struct DebugInfo { /* private fields */ }
Expand description

Debug information for a MAST forest, containing decorators and error messages.

Implementations§

Source§

impl DebugInfo

Source

pub fn new() -> Self

Creates a new empty DebugInfo.

Source

pub fn with_capacity( decorators_capacity: usize, nodes_capacity: usize, operations_capacity: usize, decorator_ids_capacity: usize, ) -> Self

Creates an empty DebugInfo with specified capacities.

Source

pub fn empty_for_nodes(num_nodes: usize) -> Self

Creates an empty DebugInfo with valid CSR structures for N nodes.

Source

pub fn is_empty(&self) -> bool

Returns true if this DebugInfo has no decorators or error codes.

Source

pub fn clear(&mut self)

Strips all debug information, removing decorators and error codes.

This is used for release builds where debug info is not needed.

Source

pub fn num_decorators(&self) -> usize

Returns the number of decorators.

Source

pub fn decorators(&self) -> &[Decorator]

Returns all decorators as a slice.

Source

pub fn decorator(&self, decorator_id: DecoratorId) -> Option<&Decorator>

Returns the decorator with the given ID, if it exists.

Source

pub fn before_enter_decorators(&self, node_id: MastNodeId) -> &[DecoratorId]

Returns the before-enter decorators for the given node.

Source

pub fn after_exit_decorators(&self, node_id: MastNodeId) -> &[DecoratorId]

Returns the after-exit decorators for the given node.

Source

pub fn decorators_for_operation( &self, node_id: MastNodeId, local_op_idx: usize, ) -> &[DecoratorId]

Returns decorators for a specific operation within a node.

Source

pub fn add_decorator( &mut self, decorator: Decorator, ) -> Result<DecoratorId, MastForestError>

Adds a decorator and returns its ID.

Source

pub fn clear_mappings(&mut self)

Clears all decorator information while preserving error codes.

This is used when rebuilding decorator information from nodes.

Source

pub fn error_message(&self, code: u64) -> Option<Arc<str>>

Returns an error message by code.

Source

pub fn error_codes(&self) -> impl Iterator<Item = (&u64, &Arc<str>)>

Returns an iterator over error codes.

Source

pub fn insert_error_code(&mut self, code: u64, msg: Arc<str>)

Inserts an error code with its message.

Source

pub fn extend_error_codes<I>(&mut self, error_codes: I)
where I: IntoIterator<Item = (u64, Arc<str>)>,

Inserts multiple error codes at once.

This is used when bulk error code insertion is needed.

Source

pub fn clear_error_codes(&mut self)

Clears all error codes.

This is used when error code information needs to be reset.

Trait Implementations§

Source§

impl Clone for DebugInfo

Source§

fn clone(&self) -> DebugInfo

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 DebugInfo

Source§

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

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

impl Default for DebugInfo

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for DebugInfo

Source§

fn eq(&self, other: &DebugInfo) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for DebugInfo

Source§

impl StructuralPartialEq for DebugInfo

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> Same for T

Source§

type Output = T

Should always be Self
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, 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V