sqlx_core_oldapi/sqlite/options/
auto_vacuum.rs1use crate::error::Error;
2use std::str::FromStr;
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum SqliteAutoVacuum {
6 None,
7 Full,
8 Incremental,
9}
10
11impl SqliteAutoVacuum {
12 pub(crate) fn as_str(&self) -> &'static str {
13 match self {
14 SqliteAutoVacuum::None => "NONE",
15 SqliteAutoVacuum::Full => "FULL",
16 SqliteAutoVacuum::Incremental => "INCREMENTAL",
17 }
18 }
19}
20
21impl Default for SqliteAutoVacuum {
22 fn default() -> Self {
23 SqliteAutoVacuum::None
24 }
25}
26
27impl FromStr for SqliteAutoVacuum {
28 type Err = Error;
29
30 fn from_str(s: &str) -> Result<Self, Error> {
31 Ok(match &*s.to_ascii_lowercase() {
32 "none" => SqliteAutoVacuum::None,
33 "full" => SqliteAutoVacuum::Full,
34 "incremental" => SqliteAutoVacuum::Incremental,
35
36 _ => {
37 return Err(Error::Configuration(
38 format!("unknown value {:?} for `auto_vacuum`", s).into(),
39 ));
40 }
41 })
42 }
43}