cartel_sqlite/runtime/
mod.rs1use dope_core::driver::schedule::clock::timer;
2use o3::alloc;
3use std::mem;
4
5pub(crate) mod heap;
6mod layout;
7pub mod local;
8pub mod raw;
9mod release;
10pub(crate) mod slot;
11
12pub use layout::Layout;
13
14#[derive(Clone, Copy, PartialEq, Eq)]
16pub struct Runtime(());
17
18impl Runtime {
19 pub fn install(permit: raw::Permit) -> Result<Self, Error> {
23 let raw::Permit(()) = permit.initialize()?;
24 Ok(Self(()))
25 }
26}
27
28#[derive(Clone, Copy, Debug, PartialEq, Eq)]
29pub enum Error {
30 GlobalCache,
32 CacheStats,
34 StatementVtab,
36 WritableStatic,
38 StatementLog,
40 Threading(crate::Code),
41 Initialization(crate::Code),
42 VfsMissing,
43 VfsOpen,
44 VfsFileSize {
45 actual: std::ffi::c_int,
46 },
47 VfsRegistration(crate::Code),
48 SqliteBytes,
49 SqliteCapacity,
50 SqliteMemory {
52 actual: usize,
53 },
54 StatementSqlBytes {
55 actual: usize,
56 },
57 CapacityOverflow,
58 Allocation(alloc::Error),
59 Layout,
60 TimerCapacity(timer::Exhausted),
61}
62
63const _: () = assert!(mem::size_of::<Runtime>() == 0);