#[derive(Clone, Copy)]
pub struct OpenFlag(pub(crate) i32);
impl Default for OpenFlag {
fn default() -> Self {
Self::OPEN_READWRITE_CREATE
}
}
impl std::ops::BitOr for OpenFlag {
type Output = Self;
fn bitor(self, rhs: Self) -> Self::Output {
Self(self.0.bitor(rhs.0))
}
}
macro_rules! consts {
($($(#[$m:meta])* $id:ident => $($sq:ident)|*);* $(;)?) => {
impl OpenFlag {
$($(#[$m])*pub const $id: Self = Self($(libsqlite3_sys::$sq)|*);)*
}
};
}
consts! {
OPEN_READONLY => SQLITE_OPEN_READONLY;
OPEN_READWRITE => SQLITE_OPEN_READWRITE;
OPEN_READWRITE_CREATE => SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
OPEN_URI => SQLITE_OPEN_URI;
OPEN_MEMORY => SQLITE_OPEN_MEMORY;
OPEN_NOMUTEX => SQLITE_OPEN_NOMUTEX;
OPEN_FULLMUTEX => SQLITE_OPEN_FULLMUTEX;
OPEN_SHAREDCACHE => SQLITE_OPEN_SHAREDCACHE;
OPEN_PRIVATECACHE => SQLITE_OPEN_PRIVATECACHE;
}