use crate::ffi;
pub struct QuestEnv {
env: ffi::QuESTEnv,
}
impl QuestEnv {
pub fn new() -> Self {
unsafe {
QuestEnv {
env: ffi::createQuESTEnv(),
}
}
}
pub fn sync(&mut self) {
unsafe {
ffi::syncQuESTEnv(self.env);
}
}
pub fn report(&self) {
unsafe {
ffi::reportQuESTEnv(self.env);
}
}
}
impl Default for QuestEnv {
fn default() -> Self {
Self::new()
}
}
impl Drop for QuestEnv {
fn drop(&mut self) {
unsafe {
ffi::destroyQuESTEnv(self.env);
}
}
}
impl From<QuestEnv> for ffi::QuESTEnv {
fn from(item: QuestEnv) -> Self {
item.env
}
}
impl From<&QuestEnv> for ffi::QuESTEnv {
fn from(item: &QuestEnv) -> Self {
item.env
}
}
pub fn seed_quest(seed_values: Vec<u64>) {
unsafe {
ffi::seedQuEST(seed_values.as_ptr() as *mut u64, seed_values.len() as i32);
}
}
pub fn seed_quest_default() {
unsafe {
ffi::seedQuESTDefault();
}
}