drizzle_sqlite/
connection.rs1#[derive(Default, Debug, Clone, Copy, PartialEq, Eq)]
7pub enum TransactionConfig {
8 #[default]
9 Deferred,
11 Immediate,
14 Exclusive,
17}
18
19pub type SQLiteTransactionType = TransactionConfig;
21
22#[cfg(feature = "rusqlite")]
23impl From<SQLiteTransactionType> for ::rusqlite::TransactionBehavior {
24 fn from(tx_type: SQLiteTransactionType) -> Self {
25 match tx_type {
26 SQLiteTransactionType::Deferred => Self::Deferred,
27 SQLiteTransactionType::Immediate => Self::Immediate,
28 SQLiteTransactionType::Exclusive => Self::Exclusive,
29 }
30 }
31}
32
33#[cfg(feature = "rusqlite")]
34impl From<::rusqlite::TransactionBehavior> for SQLiteTransactionType {
35 fn from(behavior: ::rusqlite::TransactionBehavior) -> Self {
36 match behavior {
37 ::rusqlite::TransactionBehavior::Immediate => Self::Immediate,
38 ::rusqlite::TransactionBehavior::Exclusive => Self::Exclusive,
39 _ => Self::Deferred,
41 }
42 }
43}
44
45#[cfg(feature = "libsql")]
47impl From<SQLiteTransactionType> for libsql::TransactionBehavior {
48 fn from(tx_type: SQLiteTransactionType) -> Self {
49 match tx_type {
50 SQLiteTransactionType::Deferred => Self::Deferred,
51 SQLiteTransactionType::Immediate => Self::Immediate,
52 SQLiteTransactionType::Exclusive => Self::Exclusive,
53 }
54 }
55}
56
57#[cfg(feature = "libsql")]
59impl From<libsql::TransactionBehavior> for SQLiteTransactionType {
60 fn from(behavior: libsql::TransactionBehavior) -> Self {
61 match behavior {
62 libsql::TransactionBehavior::Immediate => Self::Immediate,
63 libsql::TransactionBehavior::Exclusive => Self::Exclusive,
64 libsql::TransactionBehavior::Deferred | libsql::TransactionBehavior::ReadOnly => {
66 Self::Deferred
67 }
68 }
69 }
70}
71
72#[cfg(feature = "turso")]
74impl From<SQLiteTransactionType> for turso::transaction::TransactionBehavior {
75 fn from(tx_type: SQLiteTransactionType) -> Self {
76 match tx_type {
77 SQLiteTransactionType::Deferred => Self::Deferred,
78 SQLiteTransactionType::Immediate => Self::Immediate,
79 SQLiteTransactionType::Exclusive => Self::Exclusive,
80 }
81 }
82}
83
84#[cfg(feature = "turso")]
86impl From<turso::transaction::TransactionBehavior> for SQLiteTransactionType {
87 fn from(behavior: turso::transaction::TransactionBehavior) -> Self {
88 match behavior {
89 turso::transaction::TransactionBehavior::Immediate => Self::Immediate,
90 turso::transaction::TransactionBehavior::Exclusive => Self::Exclusive,
91 _ => Self::Deferred,
93 }
94 }
95}