Crate rusqlite[−][src]
Rusqlite is an ergonomic wrapper for using SQLite from Rust. It attempts to expose an interface similar to rust-postgres.
extern crate rusqlite; extern crate time; use rusqlite::types::ToSql; use rusqlite::{Connection, NO_PARAMS}; use time::Timespec; #[derive(Debug)] struct Person { id: i32, name: String, time_created: Timespec, data: Option<Vec<u8>>, } fn main() { let conn = Connection::open_in_memory().unwrap(); conn.execute( "CREATE TABLE person ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, time_created TEXT NOT NULL, data BLOB )", NO_PARAMS, ).unwrap(); let me = Person { id: 0, name: "Steven".to_string(), time_created: time::get_time(), data: None, }; conn.execute( "INSERT INTO person (name, time_created, data) VALUES (?1, ?2, ?3)", &[&me.name as &ToSql, &me.time_created, &me.data], ).unwrap(); let mut stmt = conn .prepare("SELECT id, name, time_created, data FROM person") .unwrap(); let person_iter = stmt .query_map(NO_PARAMS, |row| Person { id: row.get(0), name: row.get(1), time_created: row.get(2), data: row.get(3), }).unwrap(); for person in person_iter { println!("Found person {:?}", person.unwrap()); } }
Modules
backup | Online SQLite backup API. |
blob | Incremental BLOB I/O. |
functions | Create or redefine SQL functions. |
limits | Run-Time Limits |
trace | Tracing and profiling functions. Error and warning log. |
types | Traits dealing with SQLite data types. |
vtab | Create virtual tables. |
Structs
AndThenRows | An iterator over the mapped resulting rows of a query, with an Error type unifying with Error. |
CachedStatement | Cacheable statement. |
Connection | A connection to a SQLite database. |
InterruptHandle | Allows interrupting a long-running computation. |
LoadExtensionGuard | RAII guard temporarily enabling SQLite extensions to be loaded. |
MappedRows | An iterator over the mapped resulting rows of a query. |
OpenFlags | Flags for opening SQLite database connections. See sqlite3_open_v2 for details. |
Row | A single result row of a query. |
Rows | An handle for the resulting rows of a query. |
Savepoint | Represents a savepoint on a database connection. |
Statement | A prepared statement. |
Transaction | Represents a transaction on a database connection. |
Enums
DatabaseName | Name for a database within a SQLite connection. |
DropBehavior | Options for how a Transaction or Savepoint should behave when it is dropped. |
Error | Enum listing possible errors from rusqlite. |
ErrorCode | Error Codes |
TransactionBehavior | Options for transaction behavior. See BEGIN TRANSACTION for details. |
Constants
NO_PARAMS | To be used when your statement has no parameter. |
Traits
RowIndex | A trait implemented by types that can index into columns of a row. |
Functions
bypass_sqlite_initialization⚠ | rusqlite’s check for a safe SQLite threading mode requires SQLite 3.7.0 or later. If you are running against a SQLite older than that, rusqlite attempts to ensure safety by performing configuration and initialization of SQLite itself the first time you attempt to open a connection. By default, rusqlite panics if that initialization fails, since that could mean SQLite has been initialized in single-thread mode. |
bypass_sqlite_version_check⚠ | rusqlite performs a one-time check that the runtime SQLite version is at least as new as the version of SQLite found when rusqlite was built. Bypassing this check may be dangerous; e.g., if you use features of SQLite that are not present in the runtime version. If you are sure the runtime version is compatible with the build-time version for your usage, you can bypass the version check by calling this function before your first connection attempt. |
version | Returns the SQLite version as a string; e.g., |
version_number | Returns the SQLite version as an integer; e.g., |
Type Definitions
Result | A typedef of the result returned by many methods. |
SqliteConnection | Deprecated Old name for |
SqliteError | Deprecated Old name for |
SqliteLoadExtensionGuard | Deprecated Old name for |
SqliteOpenFlags | Deprecated Old name for |
SqliteResult | Deprecated Old name for |
SqliteRow | Deprecated Old name for |
SqliteRows | Deprecated Old name for |
SqliteStatement | Deprecated Old name for |
SqliteTransaction | Deprecated Old name for |
SqliteTransactionBehavior | Deprecated Old name for |