limbo/bindings/rust/examples/example.rs
Diego Reis 4766c9c286 bind/rust: Fix lifetime issue with pragma_query
Shallow cloning in Row ended up invalidating the pointer
to value
2025-05-19 21:29:07 -03:00

40 lines
942 B
Rust

use limbo::Builder;
#[tokio::main]
async fn main() {
let db = Builder::new_local(":memory:").build().await.unwrap();
let conn = db.connect().unwrap();
conn.query("select 1; select 1;", ()).await.unwrap();
conn.execute("CREATE TABLE IF NOT EXISTS users (email TEXT)", ())
.await
.unwrap();
conn.pragma_query("journal_mode", |row| {
println!("{:?}", row.get_value(0));
Ok(())
})
.unwrap();
let mut stmt = conn
.prepare("INSERT INTO users (email) VALUES (?1)")
.await
.unwrap();
stmt.execute(["foo@example.com"]).await.unwrap();
let mut stmt = conn
.prepare("SELECT * FROM users WHERE email = ?1")
.await
.unwrap();
let mut rows = stmt.query(["foo@example.com"]).await.unwrap();
let row = rows.next().await.unwrap().unwrap();
let value = row.get_value(0).unwrap();
println!("Row: {:?}", value);
}