use musq::{FromRow, Musq, sql, sql_as, values};
#[derive(Debug, FromRow)]
pub struct User {
pub id: i32,
pub name: String,
}
#[tokio::main]
async fn main() -> musq::Result<()> {
let pool = Musq::new().open_in_memory().await?;
sql!("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);")?
.execute(&pool)
.await?;
let id = 1;
let name = "Alice";
let user_values = values! { "id": id, "name": name }?;
sql!("INSERT INTO users {insert:user_values}")?
.execute(&pool)
.await?;
let user: User = sql_as!("SELECT id, name FROM users WHERE id = {id}")?
.fetch_one(&pool)
.await?;
println!("Fetched user: {user:?}");
Ok(())
}