Function from_bytes

Source
pub fn from_bytes<T>(
    bytes: T,
) -> Result<Grib2<SeekableGrib2Reader<Cursor<T>>>, GribError>
where T: AsRef<[u8]>,
Expand description

Reads a Grib2 instance from bytes of GRIB2.

ยงExamples

You can use this method to create a reader from a slice, i.e., a borrowed sequence of bytes:

use std::io::Read;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let f = std::fs::File::open(
        "testdata/icon_global_icosahedral_single-level_2021112018_000_TOT_PREC.grib2",
    )?;
    let mut f = std::io::BufReader::new(f);
    let mut buf = Vec::new();
    f.read_to_end(&mut buf).unwrap();
    let result = grib::from_bytes(&buf);

    assert!(result.is_ok());
    let grib2 = result?;
    assert_eq!(grib2.len(), 1);
    Ok(())
}

Also, you can use this method to create a reader from an owned sequence of bytes:

use std::io::Read;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let f = std::fs::File::open(
        "testdata/icon_global_icosahedral_single-level_2021112018_000_TOT_PREC.grib2",
    )?;
    let mut f = std::io::BufReader::new(f);
    let mut buf = Vec::new();
    f.read_to_end(&mut buf).unwrap();
    let result = grib::from_bytes(buf);

    assert!(result.is_ok());
    let grib2 = result?;
    assert_eq!(grib2.len(), 1);
    Ok(())
}