Crates.io | toql_fields_macro |
lib.rs | toql_fields_macro |
version | 0.4.0 |
source | src |
created_at | 2021-10-20 13:22:52.318144 |
updated_at | 2021-12-04 10:06:23.038358 |
description | Library with fields macro for Toql |
homepage | |
repository | https://github.com/roy-ganz/toql |
max_upload_size | |
id | 467907 |
size | 9,041 |
Beginner Guide | API documentation
Toql is an ORM for async databases that features
It currently only supports MySQL. More are coming, promised :)
Add this to your Cargo.toml
:
[dependencies]
toql = {version = "0.4", features = ["serde"]}
toql_mysql_async = "0.4"
Derive your structs:
#[derive(Toql)]
#[toql(auto_key)]
struct Todo {
#[toql(key)]
id: u64,
what: String,
#[toql(join)]
user: User
}
And do stuff with them:
let toql = ...
let todo = Todo{ ... };
// Insert todo and update its generated id
toql.insert_one(&mut todo, paths!(top)).await?;
// Compile time checked queries!
let q = query!(Todo, "*, user_id eq ?", &todo.user.id);
// Typesafe loading
let todos = toql.load_many(q).await?;
Check out the CRUD example.
Comments, bug fixes and quality improvements are welcome.
Toql is distributed under the terms of both the MIT license and the Apache License (Version 2.0).