Skip to main content

01_execute/
01-execute.rs

1fn main() -> elephantry::Result {
2    let database_url =
3        std::env::var("DATABASE_URL").unwrap_or_else(|_| "postgres://localhost".to_string());
4    let elephantry = elephantry::Pool::new(&database_url)?;
5    elephantry.execute(include_str!("structure.sql"))?;
6
7    let results = elephantry.execute("select * from department")?;
8
9    for result in &results {
10        let name: String = result.get("name");
11        println!("- {name}");
12    }
13
14    let parent_id: Option<i32> = results.get(0).get("parent_id");
15    dbg!(parent_id);
16
17    match results.get(0).try_get::<i32>("parent_id") {
18        Ok(_) => (),
19        Err(err) => eprintln!("Error: {err:?}"),
20    }
21
22    match results.get(0).try_get::<i32>("missing_field") {
23        Ok(_) => (),
24        Err(err) => eprintln!("Error: {err:?}"),
25    }
26
27    Ok(())
28}