arnaucube
arnaucube/poulpyPublic Self-hosted repository
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}