1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
pub use self::H5R_type_t::*;

use libc::{c_void, c_char, c_uchar, size_t, ssize_t};

use h5::{herr_t, haddr_t};
use h5i::hid_t;
use h5o::H5O_type_t;

#[repr(C)]
#[derive(Copy, Clone, PartialEq, PartialOrd, Debug)]
pub enum H5R_type_t {
    H5R_BADTYPE        = -1,
    H5R_OBJECT         = 0,
    H5R_DATASET_REGION = 1,
    H5R_MAXTYPE        = 2,
}

pub type hobj_ref_t      = haddr_t;
pub type hdset_reg_ref_t = [c_uchar; 12usize];

extern {
    pub fn H5Rcreate(_ref: *mut c_void, loc_id: hid_t, name: *const c_char, ref_type: H5R_type_t,
                     space_id: hid_t) -> herr_t;
    pub fn H5Rdereference(dataset: hid_t, ref_type: H5R_type_t, _ref: *const c_void) -> hid_t;
    pub fn H5Rget_region(dataset: hid_t, ref_type: H5R_type_t, _ref: *const c_void) -> hid_t;
    pub fn H5Rget_obj_type2(id: hid_t, ref_type: H5R_type_t, _ref: *const c_void, obj_type: *mut
                            H5O_type_t) -> herr_t;
    pub fn H5Rget_name(loc_id: hid_t, ref_type: H5R_type_t, _ref: *const c_void, name: *mut c_char,
                       size: size_t) -> ssize_t;
}