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