15 个版本

0.5.3 2024年7月26日
0.5.2 2023年2月10日
0.5.1 2022年12月21日
0.4.0 2021年3月22日
0.1.4 2016年7月13日

#250 in 科学

Download history 83/week @ 2024-05-03 206/week @ 2024-05-10 99/week @ 2024-05-17 66/week @ 2024-05-24 50/week @ 2024-05-31 38/week @ 2024-06-07 78/week @ 2024-06-14 163/week @ 2024-06-21 25/week @ 2024-06-28 26/week @ 2024-07-05 68/week @ 2024-07-12 139/week @ 2024-07-19 206/week @ 2024-07-26 86/week @ 2024-08-02 223/week @ 2024-08-09 289/week @ 2024-08-16

814 每月下载量
用于 14 个 Crates (4 直接)

MIT/Apache

6MB
138K SLoC

C 108K SLoC // 0.2% comments Rust 22K SLoC // 0.0% comments Happy 5K SLoC FORTRAN Legacy 2.5K SLoC // 0.3% comments Batch 86 SLoC Pan 59 SLoC // 0.4% comments Bitbake 26 SLoC

包含 (自动工具混淆代码, 220KB) ext/cfitsio/configure

fitsio-sys

查看主要文档


lib.rs:

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

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

此代码将不会直接进行文档记录,因此用户应参考 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
    ffinit(&mut fptr as *mut *mut _,
        filename.as_ptr(),
        &mut status);

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

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

assert_eq!(status, 0);

依赖关系