Module typed

Module typed 

Source
Expand description

Type-safe query builder using schema traits.

This module provides query builders that use compile-time type checking to ensure that column names are valid for the table being queried.

§Example

With #[derive(Table)] from oxide-sql-derive, you can use type-safe queries with compile-time column validation:

use oxide_sql_core::builder::Select;
use oxide_sql_core::schema::Table;

// Schema types (normally generated by #[derive(Table)])
struct User { id: i32, name: String, email: String }
struct UserTable;

impl Table for UserTable {
    type Row = User;
    const NAME: &'static str = "users";
    const COLUMNS: &'static [&'static str] = &["id", "name", "email"];
    const PRIMARY_KEY: Option<&'static str> = Some("id");
}

// Select all columns with compile-time validation
let (sql, params) = Select::<UserTable, _, _>::new()
    .select_all()
    .from_table()
    .build();

assert_eq!(sql, "SELECT id, name, email FROM users");

Structs§

Delete
A type-safe DELETE query builder that validates column names at compile time.
HasColumns
Marker: Columns have been selected.
HasFrom
Marker: Table has been specified.
HasSet
Marker: SET clause has been specified.
HasValues
Marker: Values have been specified.
Insert
A type-safe INSERT query builder that validates column names at compile time.
NoColumns
Marker: No columns selected yet.
NoFrom
Marker: No table specified yet.
NoSet
Marker: No SET clause specified yet.
NoValues
Marker: No values specified yet.
Select
A type-safe SELECT query builder that validates column names at compile time.
Update
A type-safe UPDATE query builder that validates column names at compile time.

Functions§

col
Creates a type-safe column expression for use in WHERE clauses.