Skip to main content

Dump

Trait Dump 

pub trait Dump {
    // Required method
    fn dump<W>(
        &self,
        parent: Option<&Cow<'_, str>>,
        pos: &mut usize,
        output: &mut W,
    ) -> Result<(), Error>
       where W: Write;
}
Expand description

A functionality to dump the contents of a struct to the output destination.

§Examples

use grib_template_helpers::Dump;

struct VariableLength {
    len: u8,
    seq: Vec<u8>,
}

impl Dump for VariableLength {
    fn dump<W: std::io::Write>(
        &self,
        parent: Option<&std::borrow::Cow<str>>,
        pos: &mut usize,
        output: &mut W,
    ) -> Result<(), std::io::Error> {
        writeln!(
            output,
            "variable-length array (length = {}, content = {:?})",
            self.len, self.seq
        )
    }
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let var = VariableLength {
        len: 3,
        seq: vec![1, 2, 3],
    };
    let mut buf = std::io::Cursor::new(Vec::with_capacity(1024));
    let mut pos = 0;
    var.dump(None, &mut pos, &mut buf)?;
    assert_eq!(
        String::from_utf8_lossy(buf.get_ref()),
        "variable-length array (length = 3, content = [1, 2, 3])\n"
    );
    Ok(())
}

Required Methods§

fn dump<W>( &self, parent: Option<&Cow<'_, str>>, pos: &mut usize, output: &mut W, ) -> Result<(), Error>
where W: Write,

Perform dumping to output.

Users can use the pos argument to output the current byte offset, and parent to output information about nested structures.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Dump for ComplexPacking

Source§

impl Dump for DataRepresentationTemplate

Source§

impl Dump for EarthShape

Source§

impl Dump for GaussianGrid

Source§

impl Dump for Grid

Source§

impl Dump for GridDefinitionTemplate

Source§

impl Dump for IdentificationTemplate

Source§

impl Dump for LatLonGrid

Source§

impl Dump for ProjectionCentreFlag

Source§

impl Dump for RefTime

Source§

impl Dump for ResolutionAndComponentFlags

Source§

impl Dump for Rotation

Source§

impl Dump for ScanningMode

Source§

impl Dump for Section0

Source§

impl Dump for Section1Payload

Source§

impl Dump for Section1PayloadOptional

Source§

impl Dump for Section3Payload

Source§

impl Dump for Section4Payload

Source§

impl Dump for Section5Payload

Source§

impl Dump for Section6Payload

Source§

impl Dump for SectionHeader

Source§

impl Dump for SimplePacking

Source§

impl Dump for Template1_0

Source§

impl Dump for Template1_1

Source§

impl Dump for Template1_2

Source§

impl Dump for Template3_0

Source§

impl Dump for Template3_1

Source§

impl Dump for Template3_20

Source§

impl Dump for Template3_30

Source§

impl Dump for Template3_40

Source§

impl Dump for Template3_101

Source§

impl Dump for Template5_0

Source§

impl Dump for Template5_1

Source§

impl Dump for Template5_2

Source§

impl Dump for Template5_3

Source§

impl Dump for Template5_4

Source§

impl Dump for Template5_40

Source§

impl Dump for Template5_41

Source§

impl Dump for Template5_42

Source§

impl Dump for Template5_50

Source§

impl Dump for Template5_51

Source§

impl Dump for Template5_53

Source§

impl Dump for Template5_61

Source§

impl Dump for Template5_200

Source§

impl<T> Dump for Section<T>