use dope_core::driver::schedule::clock::timer;
use o3::alloc;
use std::mem;
pub(crate) mod heap;
mod layout;
pub mod local;
pub mod raw;
pub(crate) mod slot;
pub use layout::Layout;
#[derive(Clone, Copy, PartialEq, Eq)]
pub struct Runtime(());
impl Runtime {
pub fn install(permit: raw::Permit) -> Result<Self, Error> {
let raw::Permit(()) = permit.initialize()?;
Ok(Self(()))
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum Error {
GlobalCache,
CacheStats,
StatementVtab,
WritableStatic,
StatementLog,
Threading(crate::Code),
Initialization(crate::Code),
VfsMissing,
VfsOpen,
VfsFileSize {
actual: std::ffi::c_int,
},
VfsRegistration(crate::Code),
SqliteBytes,
SqliteCapacity,
SqliteMemory {
actual: usize,
},
StatementSqlBytes {
actual: usize,
},
CapacityOverflow,
Allocation(alloc::Error),
Layout,
TimerCapacity(timer::Exhausted),
}
const _: () = assert!(mem::size_of::<Runtime>() == 0);