#![allow(clippy::print_stdout, reason = "examples are meant to print")]
mod user {
use turso_orm::prelude::*;
#[derive(Clone, Debug, PartialEq, DeriveEntityModel)]
#[turso(table_name = "user")]
pub(crate) struct Model {
#[turso(primary_key)]
pub id: i32,
#[turso(unique)]
pub email: String,
pub name: Option<String>,
}
#[derive(Copy, Clone, Debug, DeriveRelation)]
pub(crate) enum Relation {}
impl ActiveModelBehavior for ActiveModel {}
}
use turso_orm::prelude::*;
#[tokio::main]
async fn main() -> Result<(), DbErr> {
let db = Database::connect(ConnectOptions::in_memory()).await?;
db.execute(
Schema::new()
.create_table_from_entity(user::Entity)
.to_statement(),
)
.await?;
let alice = user::ActiveModel {
email: Set("alice@example.com".into()),
name: Set(Some("Alice".into())),
..Default::default()
}
.insert(&db)
.await?;
println!("inserted {alice:?}");
let found = user::Entity::find()
.filter(user::Column::Email.contains("example"))
.one(&db)
.await?;
println!("found {found:?}");
Ok(())
}