1#[cfg(feature = "encoder")]
2#[cfg_attr(docsrs, doc(cfg(feature = "encoder")))]
3pub mod encoder {
4 include!(concat!(env!("OUT_DIR"), "/basisu_c_api.rs"));
5
6 impl Bool32 {
7 pub fn is_ok(&self) -> bool {
8 self.0 != 0
9 }
10 pub fn is_err(&self) -> bool {
11 !self.is_ok()
12 }
13 }
14}
15
16pub mod transcoder {
17 include!(concat!(env!("OUT_DIR"), "/basisu_c_transcoder_api.rs"));
18
19 impl Bool32 {
20 pub fn is_ok(&self) -> bool {
21 self.0 != 0
22 }
23 pub fn is_err(&self) -> bool {
24 !self.is_ok()
25 }
26 }
27}
28
29pub(crate) unsafe fn copy_host_memory_to_basisu_impl(data: &[u8], basisu_ptr: u64) {
30 unsafe { core::ptr::copy_nonoverlapping(data.as_ptr(), basisu_ptr as *mut u8, data.len()) };
31}
32
33pub(crate) unsafe fn copy_basisu_memory_to_host_impl(
34 basisu_ptr: u64,
35 count: u64,
36) -> alloc::vec::Vec<u8> {
37 let mut dst = alloc::vec![0u8; count as usize];
38 unsafe {
39 core::ptr::copy_nonoverlapping(basisu_ptr as *mut u8, dst.as_mut_ptr(), count as usize)
40 };
41 dst
42}