Skip to main content

proofman_util/
lib.rs

1pub mod cli;
2pub mod timer_macro;
3use std::ffi::c_void;
4
5use std::mem::MaybeUninit;
6
7pub fn create_buffer_fast<F>(buffer_size: usize) -> Vec<F> {
8    let mut buffer: Vec<MaybeUninit<F>> = Vec::with_capacity(buffer_size);
9    unsafe {
10        buffer.set_len(buffer_size);
11    }
12    let buffer: Vec<F> = unsafe { std::mem::transmute(buffer) };
13    buffer
14}
15
16#[derive(Default)]
17pub struct DeviceBuffer(pub *mut c_void);
18unsafe impl Send for DeviceBuffer {}
19unsafe impl Sync for DeviceBuffer {}
20
21impl DeviceBuffer {
22    pub fn get_ptr(&self) -> *mut c_void {
23        self.0
24    }
25}