libhdf5-sys 0.2.0

Native bindings to the HDF5 library
use libc::{c_int, c_char, c_long, c_double, size_t};

use h5::hbool_t;
use h5c::{H5C_cache_incr_mode, H5C_cache_decr_mode, H5C_cache_flash_incr_mode};

pub const H5AC__CURR_CACHE_CONFIG_VERSION: c_int = 1;
pub const H5AC__MAX_TRACE_FILE_NAME_LEN:   c_int = 1024;

pub const H5AC_METADATA_WRITE_STRATEGY__PROCESS_0_ONLY: c_int = 0;
pub const H5AC_METADATA_WRITE_STRATEGY__DISTRIBUTED:    c_int = 1;

#[repr(C)]
#[derive(Copy)]
pub struct H5AC_cache_config_t {
    pub version: c_int,
    pub rpt_fcn_enabled: hbool_t,
    pub open_trace_file: hbool_t,
    pub close_trace_file: hbool_t,
    pub trace_file_name: [c_char; 1025usize],
    pub evictions_enabled: hbool_t,
    pub set_initial_size: hbool_t,
    pub initial_size: size_t,
    pub min_clean_fraction: c_double,
    pub max_size: size_t,
    pub min_size: size_t,
    pub epoch_length: c_long,
    pub incr_mode: H5C_cache_incr_mode,
    pub lower_hr_threshold: c_double,
    pub increment: c_double,
    pub apply_max_increment: hbool_t,
    pub max_increment: size_t,
    pub flash_incr_mode: H5C_cache_flash_incr_mode,
    pub flash_multiple: c_double,
    pub flash_threshold: c_double,
    pub decr_mode: H5C_cache_decr_mode,
    pub upper_hr_threshold: c_double,
    pub decrement: c_double,
    pub apply_max_decrement: hbool_t,
    pub max_decrement: size_t,
    pub epochs_before_eviction: c_int,
    pub apply_empty_reserve: hbool_t,
    pub empty_reserve: c_double,
    pub dirty_bytes_threshold: c_int,
    pub metadata_write_strategy: c_int,
}

impl Default for H5AC_cache_config_t {
    fn default() -> H5AC_cache_config_t { unsafe { ::std::mem::zeroed() } }
}

impl Clone for H5AC_cache_config_t {
    fn clone(&self) -> H5AC_cache_config_t { *self }
}