Skip to main content

H5Type

Trait H5Type 

Source
pub trait H5Type:
    Sized
    + Send
    + Clone {
    // Required methods
    fn hdf5_type() -> Datatype;
    fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>;
    fn element_size(dtype: &Datatype) -> usize;

    // Provided methods
    fn decode_vec(
        _raw: &[u8],
        _dtype: &Datatype,
        _count: usize,
    ) -> Option<Result<Vec<Self>>> { ... }
    fn native_copy_compatible(_dtype: &Datatype) -> bool { ... }
}
Expand description

Trait for types that can be read from HDF5 datasets.

Implemented for primitive numeric types. Users can implement this for custom types (e.g., compound types).

Required Methods§

Source

fn hdf5_type() -> Datatype

The HDF5 datatype that this Rust type corresponds to.

Source

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Decode a single value from raw bytes with the given datatype.

Source

fn element_size(dtype: &Datatype) -> usize

Size of a single element in bytes.

Provided Methods§

Source

fn decode_vec( _raw: &[u8], _dtype: &Datatype, _count: usize, ) -> Option<Result<Vec<Self>>>

Decode many values at once when the datatype has an efficient bulk path.

Returning None falls back to per-element decoding.

Source

fn native_copy_compatible(_dtype: &Datatype) -> bool

Whether raw bytes for this datatype can be copied directly into a Vec<Self> without any further decoding or byte swapping.

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 H5Type for f32

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Source§

impl H5Type for f64

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Source§

impl H5Type for i8

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Source§

impl H5Type for i16

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Source§

impl H5Type for i32

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Source§

impl H5Type for i64

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Source§

impl H5Type for u8

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Source§

impl H5Type for u16

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Source§

impl H5Type for u32

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Source§

impl H5Type for u64

Source§

fn hdf5_type() -> Datatype

Source§

fn from_bytes(bytes: &[u8], dtype: &Datatype) -> Result<Self>

Source§

fn element_size(_dtype: &Datatype) -> usize

Source§

fn decode_vec( raw: &[u8], dtype: &Datatype, count: usize, ) -> Option<Result<Vec<Self>>>

Source§

fn native_copy_compatible(dtype: &Datatype) -> bool

Implementors§