1 unstable release
new 0.1.0 | Dec 12, 2024 |
---|
#628 in Database interfaces
132 downloads per month
Used in 2 crates
6KB
parsql
Deneyimsel sql yardımcısı
Ne işe yarar?
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.
Dependencies
~0–580KB
~11K SLoC