Struct defmt_decoder::Table

source ·
pub struct Table { /* private fields */ }
Available on unstable only.
Expand description

Internal table that holds log levels and maps format strings to indices

Implementations§

source§

impl Table

source

pub fn parse(elf: &[u8]) -> Result<Option<Table>, Error>

Parses an ELF file and returns the decoded defmt table.

This function returns None if the ELF file contains no .defmt section.

source

pub fn parse_ignore_version(elf: &[u8]) -> Result<Option<Table>, Error>

Like parse, but does not verify that the defmt version in the firmware matches the host.

CAUTION: This is meant for defmt/probe-run development only and can result in reading garbage data.

source

pub fn set_timestamp_entry(&mut self, timestamp: TableEntry)

source

pub fn indices(&self) -> impl Iterator<Item = usize> + '_

source

pub fn is_empty(&self) -> bool

source

pub fn raw_symbols(&self) -> impl Iterator<Item = &str> + '_

Iterates over the raw symbols of the table entries

source

pub fn get_locations(&self, elf: &[u8]) -> Result<Locations, Error>

source

pub fn decode<'t>( &'t self, bytes: &[u8] ) -> Result<(Frame<'t>, usize), DecodeError>

Decode the data sent by the device using the previously stored metadata.

  • bytes
    • contains the data sent by the device that logs.
    • contains the [log string index, timestamp, optional fmt string args]
source

pub fn new_stream_decoder(&self) -> Box<dyn StreamDecoder + '_>

source

pub fn encoding(&self) -> Encoding

source

pub fn has_timestamp(&self) -> bool

Trait Implementations§

source§

impl Debug for Table

source§

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

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

impl PartialEq<Table> for Table

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Table

source§

impl StructuralEq for Table

source§

impl StructuralPartialEq for Table

Auto Trait Implementations§

§

impl RefUnwindSafe for Table

§

impl Send for Table

§

impl Sync for Table

§

impl Unpin for Table

§

impl UnwindSafe for Table

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. 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 Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.