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 time::Timespec; use rusqlite::Connection; #[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 )", &[]).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, &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(&[], |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
limits |
Run-Time Limits |
types |
Traits dealing with SQLite data types. |
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. |
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. |
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 |
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 |