blosc2_rs_sys/
lib.rs

1//! Unsafe Rust bindings for blosc2 - a fast, compressed, persistent binary data store library.
2//!
3//! ## Features
4//! Cargo features enable or disable support for various compression codecs such as `zstd` and
5//! `zlib`.
6//!
7//! ## Error Handling
8//! Errors are represented by int codes. In addition, if the environment variable
9//! `BLOSC_TRACE` is set, it will print detailed trace during failures which is useful for
10//! debugging.
11
12mod c_bridge {
13    #![allow(dead_code)]
14    #![allow(unused_imports)]
15    #![allow(clippy::upper_case_acronyms)]
16    #![allow(clippy::missing_safety_doc)]
17    #![allow(rustdoc::invalid_html_tags)]
18    #![allow(rustdoc::broken_intra_doc_links)]
19    #![allow(rustdoc::bare_urls)]
20    #![allow(missing_docs)]
21    #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
22    #![allow(clippy::suspicious_doc_comments)]
23
24    include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
25}
26pub use c_bridge::*;
27
28#[cfg(test)]
29mod tests {
30    #[test]
31    fn check_linking() {
32        let data: [u8; 8] = [1, 2, 3, 4, 5, 6, 7, 8];
33        let mut dest = [0u8; 100];
34        unsafe {
35            crate::blosc2_compress(
36                6,
37                crate::BLOSC_SHUFFLE as _,
38                1,
39                data.as_ptr() as *const core::ffi::c_void,
40                data.len() as i32,
41                dest.as_mut_ptr() as *mut core::ffi::c_void,
42                dest.len() as i32,
43            );
44        }
45    }
46}