Trait cargo_show_asm::Dumpable

source ·
pub trait Dumpable {
    type Line<'a>;

    // Required methods
    fn split_lines(contents: &str) -> Result<Vec<Self::Line<'_>>>;
    fn find_items(lines: &[Self::Line<'_>]) -> BTreeMap<Item, Range<usize>>;
    fn dump_range(&self, fmt: &Format, lines: &[Self::Line<'_>]) -> Result<()>;

    // Provided method
    fn extra_context(
        &self,
        fmt: &Format,
        lines: &[Self::Line<'_>],
        range: Range<usize>,
        items: &BTreeMap<Item, Range<usize>>
    ) -> Vec<Range<usize>> { ... }
}

Required Associated Types§

source

type Line<'a>

Required Methods§

source

fn split_lines(contents: &str) -> Result<Vec<Self::Line<'_>>>

Split source code into multiple lines, code can do some parsing here

source

fn find_items(lines: &[Self::Line<'_>]) -> BTreeMap<Item, Range<usize>>

Given a set of lines find all the interesting items

source

fn dump_range(&self, fmt: &Format, lines: &[Self::Line<'_>]) -> Result<()>

print all the lines from this range, aplying the required formatting

Provided Methods§

source

fn extra_context( &self, fmt: &Format, lines: &[Self::Line<'_>], range: Range<usize>, items: &BTreeMap<Item, Range<usize>> ) -> Vec<Range<usize>>

starting at an initial range find more ranges to include

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Dumpable for Llvm

§

type Line<'a> = &'a str

source§

impl Dumpable for Mca<'_>

§

type Line<'a> = Statement<'a>

source§

impl Dumpable for Mir

§

type Line<'a> = &'a str

source§

impl<'a> Dumpable for Asm<'a>

§

type Line<'l> = Statement<'l>