diff --git a/fitsio-sys/examples/print_version.rs b/fitsio-sys/examples/print_version.rs new file mode 100644 index 00000000..0b594d09 --- /dev/null +++ b/fitsio-sys/examples/print_version.rs @@ -0,0 +1,5 @@ +use fitsio_sys::cfitsio_version; + +fn main() { + println!("cfitsio version: {}", cfitsio_version()); +} diff --git a/fitsio-sys/src/lib.rs b/fitsio-sys/src/lib.rs index ed931e7d..da71d6cf 100644 --- a/fitsio-sys/src/lib.rs +++ b/fitsio-sys/src/lib.rs @@ -98,3 +98,29 @@ mod sys { } pub use sys::*; + +// global functions + +/// Representation of the version of cfitsio used within bindings +pub struct CfitsioVersion { + /// Patch version + pub patch: u32, + /// Minor version + pub minor: u32, + /// Major version + pub major: u32, +} + +impl std::fmt::Display for CfitsioVersion { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}.{}.{}", self.major, self.minor, self.patch) + } +} + +pub fn cfitsio_version() -> CfitsioVersion { + CfitsioVersion { + patch: CFITSIO_MICRO, + minor: CFITSIO_MINOR, + major: CFITSIO_MAJOR, + } +} diff --git a/fitsio/src/lib.rs b/fitsio/src/lib.rs index 35f05b94..93d3ce16 100644 --- a/fitsio/src/lib.rs +++ b/fitsio/src/lib.rs @@ -1049,6 +1049,9 @@ let _hdu = t.hdu(hdu_num).unwrap(); pub use fitsio_sys as sys; +// re-export version information +pub use sys::{cfitsio_version, CfitsioVersion}; + #[macro_use] mod macros; mod fitsfile;