radicle/node/db: Model SQLite `synchronous` pragma
The newly introduced enum models the SQLite pragma of the same name.
This commit is contained in:
parent
d36bf41f25
commit
6cc3da95e6
|
|
@ -110,6 +110,13 @@ impl Database {
|
|||
Ok(self)
|
||||
}
|
||||
|
||||
/// Set the `synchronous` pragma.
|
||||
pub fn synchronous(self, synchronous: sqlite_ext::Synchronous) -> Result<Self, Error> {
|
||||
self.db
|
||||
.execute(format!("PRAGMA synchronous = {synchronous};"))?;
|
||||
Ok(self)
|
||||
}
|
||||
|
||||
/// Initialize by adding our local node to the database.
|
||||
pub fn init<'a>(
|
||||
mut self,
|
||||
|
|
|
|||
|
|
@ -30,3 +30,27 @@ impl std::fmt::Display for JournalMode {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
/// Value for a `synchronous` pragma statement.
|
||||
/// For a description of all variants please refer to
|
||||
/// <https://sqlite.org/pragma.html#pragma_synchronous>.
|
||||
#[derive(Debug, Default, Copy, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
|
||||
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
|
||||
pub enum Synchronous {
|
||||
EXTRA = 3,
|
||||
#[default]
|
||||
FULL = 2,
|
||||
NORMAL = 1,
|
||||
OFF = 0,
|
||||
}
|
||||
|
||||
impl std::fmt::Display for Synchronous {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
f.write_str(match self {
|
||||
Self::EXTRA => "EXTRA",
|
||||
Self::FULL => "FULL",
|
||||
Self::NORMAL => "NORMAL",
|
||||
Self::OFF => "OFF",
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue