# 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;
```rust
#[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;
```rust
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.