fluidlite_sys/
lib.rs

1#![doc = include_str!("../README.md")]
2#![allow(non_upper_case_globals, non_camel_case_types, non_snake_case)]
3#![cfg_attr(test, allow(deref_nullptr))]
4
5pub const FLUID_OK: std::os::raw::c_int = 0;
6pub const FLUID_FAILED: std::os::raw::c_int = -1;
7
8#[cfg(feature = "bindgen")]
9include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
10
11#[cfg(not(feature = "bindgen"))]
12include!(concat!("bindings/", env!("FLUIDLITE_BINDINGS")));
13
14#[cfg(test)]
15mod tests {
16    use super::*;
17    use std::{mem::MaybeUninit, os::raw::c_int};
18
19    #[test]
20    fn library_version() {
21        let mut major = MaybeUninit::<c_int>::uninit();
22        let mut minor = MaybeUninit::<c_int>::uninit();
23        let mut micro = MaybeUninit::<c_int>::uninit();
24
25        unsafe {
26            fluid_version(major.as_mut_ptr(), minor.as_mut_ptr(), micro.as_mut_ptr());
27        }
28
29        let version = unsafe {
30            [
31                major.assume_init(),
32                minor.assume_init(),
33                micro.assume_init(),
34            ]
35        };
36
37        assert!(version[0] == 1);
38        assert!(version[1] >= 2);
39    }
40}