[][src]Module toql::indelup

Insert / Delete / Update

The database support of the Toql derive can build functions to insert, delete and update structs.

Example (Read the guide for derive attributes)

This example is not tested
#[derive(Debug, PartialEq, Toql)]
struct NewUser {
    #[toql(skip_inup)]
    id: u8, // Auto value, no insert
    username: Option<String>,
}
 
let u = NewUser {
            id: 5,
            username: Some(String::from("Foo")),
        };

let (sql, params) = NewUser::insert_one_sql(&u).unwrap();

assert_eq!("INSERT INTO NewUser (username) VALUES (?)", sql);
assert_eq!(["Foo"], *params);

Note that operations are not cascaded. If you insert a struct Foo that contains another struct Bar only `Foo will be inserted. To deal with those dependencies, you are expected to make multiple calls.

If you update a struct, fields of type Option<> with value None are skipped. Read the guide for details!

Traits

Indelup

Trait for insert delete and update functions.