pub trait Collapse {
    // Required methods
    fn collapse<R, W>(&mut self, reader: R, writer: W) -> Result<()>
       where R: BufRead,
             W: Write;
    fn is_applicable(&mut self, input: &str) -> Option<bool>;

    // Provided methods
    fn collapse_file<P, W>(
        &mut self,
        infile: Option<P>,
        writer: W
    ) -> Result<()>
       where P: AsRef<Path>,
             W: Write { ... }
    fn collapse_file_to_stdout<P>(&mut self, infile: Option<P>) -> Result<()>
       where P: AsRef<Path> { ... }
}
Expand description

The abstract behavior of stack collapsing.

Implementors of this trait are providing a way to take the stack traces produced by a particular profiler’s output (like perf script) and produce lines in the folded stack format expected by crate::flamegraph::from_lines.

See also the crate-level documentation for details.

Required Methods§

source

fn collapse<R, W>(&mut self, reader: R, writer: W) -> Result<()>
where R: BufRead, W: Write,

Collapses the contents of the provided reader and writes folded stack lines to the provided writer.

source

fn is_applicable(&mut self, input: &str) -> Option<bool>

Returns whether this implementation is appropriate for the given input.

  • None means “not sure – need more input”
  • Some(true) means “yes, this implementation should work with this string”
  • Some(false) means “no, this implementation definitely won’t work”

Provided Methods§

source

fn collapse_file<P, W>(&mut self, infile: Option<P>, writer: W) -> Result<()>
where P: AsRef<Path>, W: Write,

Collapses the contents of the provided file (or of STDIN if infile is None) and writes folded stack lines to provided writer.

source

fn collapse_file_to_stdout<P>(&mut self, infile: Option<P>) -> Result<()>
where P: AsRef<Path>,

Collapses the contents of the provided file (or of STDIN if infile is None) and writes folded stack lines to STDOUT.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Collapse for inferno::collapse::ghcprof::Folder

source§

impl Collapse for inferno::collapse::guess::Folder

source§

impl Collapse for inferno::collapse::sample::Folder

source§

impl Collapse for inferno::collapse::vsprof::Folder

source§

impl Collapse for inferno::collapse::vtune::Folder

source§

impl<T> Collapse for T
where T: CollapsePrivate,