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}