Skip to main content

NcReadType

Trait NcReadType 

Source
pub trait NcReadType:
    Clone
    + Default
    + Send
    + 'static {
    // Required methods
    fn nc_type() -> NcType;
    fn from_be_bytes(bytes: &[u8]) -> Result<Self>;
    fn element_size() -> usize;

    // Provided method
    fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>> { ... }
}
Expand description

Trait for types that can be read from classic NetCDF data.

Required Methods§

Source

fn nc_type() -> NcType

The NetCDF type this Rust type corresponds to.

Source

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Read a single element from big-endian bytes.

Source

fn element_size() -> usize

Size in bytes of one element.

Provided Methods§

Source

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Bulk decode count elements from a contiguous big-endian byte slice.

Default implementation falls back to per-element decoding. Types with multi-byte elements override this with an optimized bulk path using chunks_exact + byte-swap (on LE hosts) or copy_nonoverlapping (on BE hosts).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl NcReadType for f32

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Source§

impl NcReadType for f64

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Source§

impl NcReadType for i8

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Source§

impl NcReadType for i16

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Source§

impl NcReadType for i32

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Source§

impl NcReadType for i64

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Source§

impl NcReadType for u8

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Source§

impl NcReadType for u16

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Source§

impl NcReadType for u32

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Source§

impl NcReadType for u64

Source§

fn nc_type() -> NcType

Source§

fn from_be_bytes(bytes: &[u8]) -> Result<Self>

Source§

fn element_size() -> usize

Source§

fn decode_bulk_be(raw: &[u8], count: usize) -> Result<Vec<Self>>

Implementors§