slow5lib-sys 0.2.0

Low-level bindings to the slow5lib C library
Documentation
use std::{
    error::Error,
    ffi::{CStr, CString},
};

extern crate slow5lib_sys;

#[test]
fn main() -> Result<(), Box<dyn Error>> {
    unsafe {
        let file_path = CString::new("slow5lib/examples/example.slow5")?;
        let mode = CString::new("r")?;
        let sp = slow5lib_sys::slow5_open(file_path.as_ptr(), mode.as_ptr());
        if sp.is_null() {
            panic!("Error in opening file");
        }
        let header = (*sp).header;
        let read_group = 0;
        let run_id = CString::new("run_id")?;
        let read_group_0_run_id_value =
            slow5lib_sys::slow5_hdr_get(run_id.as_ptr(), read_group, header);

        if !read_group_0_run_id_value.is_null() {
            let cstr = CStr::from_ptr(read_group_0_run_id_value);
            println!("{}", cstr.to_str().unwrap());
        }
        slow5lib_sys::slow5_close(sp);
        Ok(())
    }
}