Trace

Struct Trace 

Source
pub struct Trace<const S: bool, T: TraceValue, const N: usize>
where TDesc<S>: TArch,
{ /* private fields */ }
Expand description

A Trace can be used to trace the execution of some code, from an start point through a series of intermediate points. The delta for each step can be recorded.

The ‘start’ method is called first; at each completed step the ‘next’ method is called. At the end (after no more than ‘N’ steps!) the deltas for each step of the trace can be recovered with the ‘trace’ method.

A Trace can be generated for any N, for T in u8, u16, u32, u64, u128 and usize

Implementations§

Source§

impl<const S: bool, T, const N: usize> Trace<S, T, N>
where TDesc<S>: TArch, T: TraceValue,

Source

pub fn clear(&mut self)

Clear the timer and trace

Source

pub fn start(&mut self)

Record the ticks on start to a region-to-time

Up to N invocations of ‘next’ afterwards will store individual deltas in the trace

Source

pub fn next(&mut self)

Calculate the delta since the last ‘start’ or ‘next’, and store it in the next trace slot

If this is invoked more than N times after a start then no work is done, as there is no space to store the time in the internal trace

Source

pub fn trace(&self) -> &[T; N]

Return the current trace

Trait Implementations§

Source§

impl<const S: bool, T: Clone + TraceValue, const N: usize> Clone for Trace<S, T, N>
where TDesc<S>: TArch,

Source§

fn clone(&self) -> Trace<S, T, N>

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<const S: bool, T: Debug + TraceValue, const N: usize> Debug for Trace<S, T, N>
where TDesc<S>: TArch,

Source§

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

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

impl<const S: bool, T, const N: usize> Default for Trace<S, T, N>

Source§

fn default() -> Self

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

impl<const S: bool, T: Copy + TraceValue, const N: usize> Copy for Trace<S, T, N>
where TDesc<S>: TArch,

Auto Trait Implementations§

§

impl<const S: bool, T, const N: usize> !Freeze for Trace<S, T, N>

§

impl<const S: bool, T, const N: usize> !RefUnwindSafe for Trace<S, T, N>

§

impl<const S: bool, T, const N: usize> !Send for Trace<S, T, N>

§

impl<const S: bool, T, const N: usize> !Sync for Trace<S, T, N>

§

impl<const S: bool, T, const N: usize> !Unpin for Trace<S, T, N>

§

impl<const S: bool, T, const N: usize> !UnwindSafe for Trace<S, T, N>

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, 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.