5个版本

0.0.6 2022年12月21日
0.0.5 2022年12月19日
0.0.3 2021年12月19日
0.0.2 2017年3月7日
0.0.1 2016年12月20日

#895科学

MIT/Apache

12KB
209 代码行

fitsio-sys-bindgen

一个底层FFI包装器到cfitsiobindgen实现。

这个包装器需要使用clang-3.9,有关更多信息,请参阅上游bindgen的要求

参阅主要文档


lib.rs:

此包是使用rust-bindgen自动生成的,因此不是用户生成的。

包含的函数预计将与fitsio一起使用,它是一个高级API包装器,用于低级直接C绑定,尽管绑定已经足够完整,可以单独使用。

此代码将不会直接进行文档编制,因此用户应参考fitsio C文档以了解使用方法。

关于函数名的说明

不幸的是,我们必须在整个fits中使用短名称。C-api公开了更描述性的长名称,例如 fits_open_file 而不是 ffopen,但库中可用的符号只有短名称,而长名称仅是预处理器定义。

示例

use std::ptr;
use std::ffi;

let filename = ffi::CString::new("!/tmp/test.fits").unwrap();
let mut fptr = ptr::null_mut();
let mut status = 0;

unsafe {
    // Create a new file, clobbering any pre-existing file
    fitsio_sys::ffinit(&mut fptr as *mut *mut _,
        filename.as_ptr(),
        &mut status);

    // Add an empty primary HDU
    fitsio_sys::ffphps(fptr, 8, 0, ptr::null_mut(), &mut status);

    // Finally close the file
    fitsio_sys::ffclos(fptr, &mut status);
}

assert_eq!(status, 0);

依赖关系

~0–2MB
~37K SLoC