poulpy/spqlios/src/lib.rs
spqlios/src/lib.rsRaw
1pub mod module;
2pub mod poly;
3pub mod scalar;
4
5#[allow(
6 non_camel_case_types,
7 non_snake_case,
8 non_upper_case_globals,
9 dead_code,
10 improper_ctypes
11)]
12pub mod bindings {
13 include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
14}
15
16pub use bindings::*;
17
18fn cast_mut_u64_to_mut_u8_slice(data: &mut [u64]) -> &mut [u8] {
19 let ptr: *mut u8 = data.as_mut_ptr() as *mut u8;
20 let len: usize = data.len() * std::mem::size_of::<u64>();
21 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
22}
23
24fn cast_mut_u8_to_mut_i64_slice(data: &mut [u8]) -> &mut [i64] {
25 let ptr: *mut i64 = data.as_mut_ptr() as *mut i64;
26 let len: usize = data.len() / std::mem::size_of::<i64>();
27 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
28}