1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
use std::mem::size_of;
pub fn to_data<Result: Copy, T>(value: T) -> Vec<Result> {
let ptr: *const Result = (&value) as *const T as *const Result;
let mut result = vec![];
let size = size_of::<T>() / size_of::<Result>();
for i in 0..size {
result.push(unsafe { *ptr.add(i) });
}
result
}
pub fn data_pointer<T>(value: T) -> usize {
unsafe { *((&value) as *const T as *const usize) }
}