sqlx_core_oldapi/sqlite/options/
journal_mode.rs1use crate::error::Error;
2use std::str::FromStr;
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
8pub enum SqliteJournalMode {
9 Delete,
10 Truncate,
11 Persist,
12 Memory,
13 Wal,
14 Off,
15}
16
17impl SqliteJournalMode {
18 pub(crate) fn as_str(&self) -> &'static str {
19 match self {
20 SqliteJournalMode::Delete => "DELETE",
21 SqliteJournalMode::Truncate => "TRUNCATE",
22 SqliteJournalMode::Persist => "PERSIST",
23 SqliteJournalMode::Memory => "MEMORY",
24 SqliteJournalMode::Wal => "WAL",
25 SqliteJournalMode::Off => "OFF",
26 }
27 }
28}
29
30impl Default for SqliteJournalMode {
31 fn default() -> Self {
32 SqliteJournalMode::Wal
33 }
34}
35
36impl FromStr for SqliteJournalMode {
37 type Err = Error;
38
39 fn from_str(s: &str) -> Result<Self, Error> {
40 Ok(match &*s.to_ascii_lowercase() {
41 "delete" => SqliteJournalMode::Delete,
42 "truncate" => SqliteJournalMode::Truncate,
43 "persist" => SqliteJournalMode::Persist,
44 "memory" => SqliteJournalMode::Memory,
45 "wal" => SqliteJournalMode::Wal,
46 "off" => SqliteJournalMode::Off,
47
48 _ => {
49 return Err(Error::Configuration(
50 format!("unknown value {:?} for `journal_mode`", s).into(),
51 ));
52 }
53 })
54 }
55}