Skip to main content

Dump

Trait Dump 

pub trait Dump {
    // Required method
    fn dump<'d, W>(
        &self,
        parent: Option<&Cow<'_, str>>,
        doc_overrides: DocOverrides<'d>,
        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::{DocOverrides, Dump};

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

impl Dump for VariableLength {
    fn dump<'d, W: std::io::Write>(
        &self,
        parent: Option<&std::borrow::Cow<str>>,
        doc_overrides: DocOverrides<'d>,
        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, DocOverrides::empty(), &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<'d, W>( &self, parent: Option<&Cow<'_, str>>, doc_overrides: DocOverrides<'d>, 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".

Implementations on Foreign Types§

§

impl<T> Dump for &T
where T: Dump + ?Sized,

§

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

Implementors§

Source§

impl Dump for ComplexPacking

Source§

impl Dump for DataRepresentationTemplate

Source§

impl Dump for DateTime

Source§

impl Dump for DerivedForecast

Source§

impl Dump for EarthShape

Source§

impl Dump for EnsembleForecast

Source§

impl Dump for grib::FixedSurface

Source§

impl Dump for grib::def::grib2::template::param_set::FixedSurface

Source§

impl Dump for ForecastTime

Source§

impl Dump for GaussianGrid

Source§

impl Dump for GeneratingProcess

Source§

impl Dump for Grid

Source§

impl Dump for GridDefinitionTemplate

Source§

impl Dump for Horizontal

Source§

impl Dump for IdentificationTemplate

Source§

impl Dump for LatLonGrid

Source§

impl Dump for OrderingFlags

Source§

impl Dump for PercentileForecasts

Source§

impl Dump for ProbabilityForecasts

Source§

impl Dump for ProductDefinitionTemplate

Source§

impl Dump for ProductParam

Source§

impl Dump for ProjectionCentreFlag

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 Stretching

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_2

Source§

impl Dump for Template3_3

Source§

impl Dump for Template3_10

Source§

impl Dump for Template3_20

Source§

impl Dump for Template3_30

Source§

impl Dump for Template3_40

Source§

impl Dump for Template3_41

Source§

impl Dump for Template3_42

Source§

impl Dump for Template3_43

Source§

impl Dump for Template3_101

Source§

impl Dump for Template4_0

Source§

impl Dump for Template4_1

Source§

impl Dump for Template4_2

Source§

impl Dump for Template4_5

Source§

impl Dump for Template4_6

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 Dump for Template5_50002

Source§

impl Dump for Template5_50002Optional

Source§

impl<F, V> Dump for ScaledValue<F, V>
where F: TryFromSlice + WriteToBuffer + DumpField, V: TryFromSlice + WriteToBuffer + DumpField,

Source§

impl<L> Dump for TimeRange<L>
where L: TryFromSlice + WriteToBuffer + DumpField,

Source§

impl<T> Dump for Section<T>