use coco_sys::coco_random_state_t;
pub struct RandomState {
pub(crate) inner: *mut coco_random_state_t,
}
impl RandomState {
pub fn new(seed: u32) -> Self {
let inner = unsafe { coco_sys::coco_random_new(seed) };
RandomState { inner }
}
pub fn normal(&mut self) -> f64 {
unsafe { coco_sys::coco_random_normal(self.inner) }
}
pub fn uniform(&mut self) -> f64 {
unsafe { coco_sys::coco_random_uniform(self.inner) }
}
}
impl Drop for RandomState {
fn drop(&mut self) {
unsafe {
coco_sys::coco_random_free(self.inner);
}
}
}