drizzle 0.1.5

A type-safe SQL query builder for Rust
Documentation
#![cfg(any(feature = "rusqlite", feature = "libsql", feature = "turso"))]

use drizzle::sqlite::prelude::*;
#[cfg(feature = "uuid")]
use uuid::Uuid;

#[cfg(feature = "uuid")]
#[SQLiteTable]
pub struct Users {
    #[column(primary, default_fn = Uuid::new_v4)]
    id: Uuid,
    name: String,
    age: i64,
}

#[cfg(feature = "uuid")]
#[SQLiteTable]
pub struct Posts {
    #[column(primary, default_fn = Uuid::new_v4)]
    id: Uuid,
    #[column(references = Users::id)]
    user_id: Uuid,
    context: Option<String>,
}

#[cfg(not(feature = "uuid"))]
#[SQLiteTable]
pub struct Users {
    #[column(primary)]
    id: i64,
    name: String,
    age: i64,
}

#[cfg(not(feature = "uuid"))]
#[SQLiteTable]
pub struct Posts {
    #[column(primary)]
    id: i64,
    #[column(references = Users::id)]
    user_id: i64,
    context: Option<String>,
}

#[derive(SQLiteSchema)]
pub struct Schema {
    pub users: Users,
    pub posts: Posts,
}