Crates.io | parsql |
lib.rs | parsql |
version | 0.1.0 |
source | src |
created_at | 2024-12-12 21:50:23.278475 |
updated_at | 2024-12-12 21:50:23.278475 |
description | Deneyimsel bir sql yardımcı küfesidir. UYARI: bu bir ORM aracı değildir. Amaç sql yazımı ve kullanımında basit cümlecikler için kolaylık sağlamaktır. |
homepage | |
repository | https://github.com/yazdostum-nettr/parsql |
max_upload_size | |
id | 1481688 |
size | 10,227 |
Deneyimsel sql yardımcısı
Temel sql cümleciklerinin direkt "struct" üzerinden yönetilebilmesini sağlayacak, "generic crud" işlemlerini kullanılabilir hale getiren yardımcı makro, trait ve fonksiyonlar içerir.
Örneğin;
#[derive(Queryable, Debug)]
#[table_name("users")]
#[where_clause("id = $")]
pub struct GetUser {
pub id: i64,
pub name: String,
pub email: String,
pub state: i16,
}
gibi bir procedural makro kullanımı ile, desteklenen (şimdilik sqlite ve postgresql) veritabanlarında küfe'de tanımlanan "get" fonksiyonunu, bu "struct" için uygulayabilir hale getirmiş oluyoruz.
Şunun gibi;
let get_user_result = get(&conn, get_user, |row| {
Ok(GetUser {
id: row.get("id").unwrap(),
name: row.get("name").unwrap(),
email: row.get("email").unwrap(),
state: row.get("state").unwrap(),
})
});
println!("get user result: {:?}", get_user_result);
github'da projenin repository'sinde, "examples" klasörü altında "sqlite" ve "tokio-postgres" örnek projelerinde, örnek kullanımlar mevcuttur.