sqlx_core_guts/sqlite/
mod.rs

1//! **SQLite** database driver.
2
3// SQLite is a C library. All interactions require FFI which is unsafe.
4// All unsafe blocks should have comments pointing to SQLite docs and ensuring that we maintain
5// invariants.
6#![allow(unsafe_code)]
7
8pub use arguments::{SqliteArgumentValue, SqliteArguments};
9pub use column::SqliteColumn;
10pub use connection::{LockedSqliteHandle, SqliteConnection};
11pub use database::Sqlite;
12pub use error::SqliteError;
13pub use options::{
14    SqliteAutoVacuum, SqliteConnectOptions, SqliteJournalMode, SqliteLockingMode, SqliteSynchronous,
15};
16pub use query_result::SqliteQueryResult;
17pub use row::SqliteRow;
18pub use statement::SqliteStatement;
19pub use transaction::SqliteTransactionManager;
20pub use type_info::SqliteTypeInfo;
21pub use value::{SqliteValue, SqliteValueRef};
22
23use crate::executor::Executor;
24
25mod arguments;
26mod column;
27mod connection;
28mod database;
29mod error;
30mod options;
31mod query_result;
32mod row;
33mod statement;
34mod transaction;
35mod type_info;
36pub mod types;
37mod value;
38
39#[cfg(feature = "migrate")]
40mod migrate;
41
42/// An alias for [`Pool`][crate::pool::Pool], specialized for SQLite.
43pub type SqlitePool = crate::pool::Pool<Sqlite>;
44
45/// An alias for [`PoolOptions`][crate::pool::PoolOptions], specialized for SQLite.
46pub type SqlitePoolOptions = crate::pool::PoolOptions<Sqlite>;
47
48/// An alias for [`Executor<'_, Database = Sqlite>`][Executor].
49pub trait SqliteExecutor<'c>: Executor<'c, Database = Sqlite> {}
50impl<'c, T: Executor<'c, Database = Sqlite>> SqliteExecutor<'c> for T {}
51
52// NOTE: required due to the lack of lazy normalization
53impl_into_arguments_for_arguments!(SqliteArguments<'q>);
54impl_executor_for_pool_connection!(Sqlite, SqliteConnection, SqliteRow);
55impl_executor_for_transaction!(Sqlite, SqliteRow);
56impl_column_index_for_row!(SqliteRow);
57impl_column_index_for_statement!(SqliteStatement);
58impl_acquire!(Sqlite, SqliteConnection);
59impl_into_maybe_pool!(Sqlite, SqliteConnection);
60
61// required because some databases have a different handling of NULL
62impl_encode_for_option!(Sqlite);