hdf5-sys 0.2.6

The package provides bindings to HDF5.
Documentation
use libc::{c_char, c_uint, size_t};

use H5Ipublic::hid_t;
use H5public::{herr_t, hsize_t, htri_t};

#[derive(Clone, Copy, Debug)]
#[repr(C)]
pub enum H5T_class_t {
    H5T_NO_CLASS = -1,
    H5T_INTEGER = 0,
    H5T_FLOAT = 1,
    H5T_TIME = 2,
    H5T_STRING = 3,
    H5T_BITFIELD = 4,
    H5T_OPAQUE = 5,
    H5T_COMPOUND = 6,
    H5T_REFERENCE = 7,
    H5T_ENUM = 8,
    H5T_VLEN = 9,
    H5T_ARRAY = 10,

    H5T_NCLASSES,
}
pub use self::H5T_class_t::*;

#[derive(Clone, Copy, Debug)]
#[repr(C)]
pub enum H5T_cset_t {
    H5T_CSET_ERROR = -1,
    H5T_CSET_ASCII = 0,
    H5T_CSET_UTF8 = 1,
    H5T_CSET_RESERVED_2 = 2,
    H5T_CSET_RESERVED_3 = 3,
    H5T_CSET_RESERVED_4 = 4,
    H5T_CSET_RESERVED_5 = 5,
    H5T_CSET_RESERVED_6 = 6,
    H5T_CSET_RESERVED_7 = 7,
    H5T_CSET_RESERVED_8 = 8,
    H5T_CSET_RESERVED_9 = 9,
    H5T_CSET_RESERVED_10 = 10,
    H5T_CSET_RESERVED_11 = 11,
    H5T_CSET_RESERVED_12 = 12,
    H5T_CSET_RESERVED_13 = 13,
    H5T_CSET_RESERVED_14 = 14,
    H5T_CSET_RESERVED_15 = 15,
}
pub use self::H5T_cset_t::*;

extern "C" {
    pub fn H5Tcreate(typo: H5T_class_t, size: size_t) -> hid_t;
    pub fn H5Tcopy(type_id: hid_t) -> hid_t;
    pub fn H5Tclose(type_id: hid_t) -> herr_t;
    pub fn H5Tequal(type1_id: hid_t, type2_id: hid_t) -> htri_t;

    pub fn H5Tinsert(parent_id: hid_t, name: *const c_char, offset: size_t, member_id: hid_t)
                     -> herr_t;

    pub fn H5Tvlen_create(base_id: hid_t) -> hid_t;
    pub fn H5Tarray_create2(base_id: hid_t, ndims: c_uint, dim: *const hsize_t) -> hid_t;
    pub fn H5Tget_size(type_id: hid_t) -> size_t;
    pub fn H5Tget_cset(type_id: hid_t) -> H5T_cset_t;
    pub fn H5Tset_size(type_id: hid_t, size: size_t) -> herr_t;
    pub fn H5Tset_cset(type_id: hid_t, cset: H5T_cset_t) -> herr_t;
}

extern "C" {
    pub static H5T_C_S1_g: hid_t;
    pub static H5T_NATIVE_FLOAT_g: hid_t;
    pub static H5T_NATIVE_DOUBLE_g: hid_t;
    pub static H5T_NATIVE_INT8_g: hid_t;
    pub static H5T_NATIVE_UINT8_g: hid_t;
    pub static H5T_NATIVE_INT16_g: hid_t;
    pub static H5T_NATIVE_UINT16_g: hid_t;
    pub static H5T_NATIVE_INT32_g: hid_t;
    pub static H5T_NATIVE_UINT32_g: hid_t;
    pub static H5T_NATIVE_INT64_g: hid_t;
    pub static H5T_NATIVE_UINT64_g: hid_t;
}

pub use self::H5T_C_S1_g as H5T_C_S1;
pub use self::H5T_NATIVE_FLOAT_g as H5T_NATIVE_FLOAT;
pub use self::H5T_NATIVE_DOUBLE_g as H5T_NATIVE_DOUBLE;
pub use self::H5T_NATIVE_INT8_g as H5T_NATIVE_INT8;
pub use self::H5T_NATIVE_UINT8_g as H5T_NATIVE_UINT8;
pub use self::H5T_NATIVE_INT16_g as H5T_NATIVE_INT16;
pub use self::H5T_NATIVE_UINT16_g as H5T_NATIVE_UINT16;
pub use self::H5T_NATIVE_INT32_g as H5T_NATIVE_INT32;
pub use self::H5T_NATIVE_UINT32_g as H5T_NATIVE_UINT32;
pub use self::H5T_NATIVE_INT64_g as H5T_NATIVE_INT64;
pub use self::H5T_NATIVE_UINT64_g as H5T_NATIVE_UINT64;