#[cfg(feature = "gluesql_sled_storage")]
mod hello_world {
use {
gluesql::{
FromGlueRow,
gluesql_sled_storage::SledStorage,
prelude::{Glue, SelectExt},
},
std::fs,
};
#[derive(Debug, FromGlueRow)]
struct GreetRow {
name: String,
}
pub async fn run() {
let sled_dir = "/tmp/gluesql/hello_world";
fs::remove_dir_all(sled_dir).unwrap_or(());
let storage = SledStorage::new(sled_dir).expect("Something went wrong!");
let mut glue = Glue::new(storage);
let queries = "
CREATE TABLE greet (name TEXT);
INSERT INTO greet VALUES ('World');
";
glue.execute(queries).await.expect("Execution failed");
let queries = "
SELECT name FROM greet
";
let result = glue.execute(queries).await.expect("Failed to execute");
assert_eq!(result.len(), 1);
let rows = result
.rows_as::<GreetRow>()
.expect("Failed to decode select rows");
assert_eq!(rows.len(), 1);
assert_eq!(&rows[0].name, "World");
println!("Hello {}!", rows[0].name); }
}
fn main() {
#[cfg(feature = "gluesql_sled_storage")]
futures::executor::block_on(hello_world::run());
}