Support the immutable option on SQLite connections (#1289)

Co-authored-by: Austin Bonander <austin@launchbadge.com>
This commit is contained in:
David Marcin
2021-09-10 15:47:30 -07:00
committed by GitHub
parent 092f811f62
commit 687fbf9909
3 changed files with 28 additions and 2 deletions

View File

@@ -63,6 +63,7 @@ pub struct SqliteConnectOptions {
pub(crate) synchronous: SqliteSynchronous,
pub(crate) auto_vacuum: SqliteAutoVacuum,
pub(crate) page_size: u32,
pub(crate) immutable: bool,
}
impl Default for SqliteConnectOptions {
@@ -88,6 +89,7 @@ impl SqliteConnectOptions {
synchronous: SqliteSynchronous::Full,
auto_vacuum: Default::default(),
page_size: 4096,
immutable: false,
}
}
@@ -191,6 +193,11 @@ impl SqliteConnectOptions {
self
}
pub fn immutable(mut self, immutable: bool) -> Self {
self.immutable = immutable;
self
}
/// Sets the log settings.
///
/// # Example

View File

@@ -94,6 +94,20 @@ impl FromStr for SqliteConnectOptions {
}
},
"immutable" => match &*value {
"true" | "1" => {
options.immutable = true;
}
"false" | "0" => {
options.immutable = false;
}
_ => {
return Err(Error::Configuration(
format!("unknown value {:?} for `immutable`", value).into(),
));
}
},
_ => {
return Err(Error::Configuration(
format!(