extern crate tetratto_core; use tetratto_core::{ model::apps::{AppDataSelectMode, AppDataSelectQuery, AppDataQueryResult}, sdk::{DataClient, SimplifiedQuery}, }; use std::env::var; // mirror of https://trisua.com/t/tetratto/src/branch/master/example/app_sdk_test.js ... but in rust #[tokio::main] pub async fn main() { let client = DataClient::new( Some("http://localhost:4118".to_string()), var("APP_API_KEY").unwrap(), ); println!("data used: {}", client.get_app().await.unwrap().data_used); // record insert client .insert("rust_test".to_string(), "Hello, world!".to_string()) .await .unwrap(); println!("record created"); println!("data used: {}", client.get_app().await.unwrap().data_used); // testing record query then delete let record = match client .query(&SimplifiedQuery { query: AppDataSelectQuery::KeyIs("rust_test".to_string()), mode: AppDataSelectMode::One(0), }) .await .unwrap() { AppDataQueryResult::One(x) => x, AppDataQueryResult::Many(_) => unreachable!(), }; println!("{:?}", record); client .update(record.id, "Hello, world! 1".to_string()) .await .unwrap(); println!("record updated"); println!("data used: {}", client.get_app().await.unwrap().data_used); let record = match client .query(&SimplifiedQuery { query: AppDataSelectQuery::KeyIs("rust_test".to_string()), mode: AppDataSelectMode::One(0), }) .await .unwrap() { AppDataQueryResult::One(x) => x, AppDataQueryResult::Many(_) => unreachable!(), }; println!("{:?}", record); client.remove(record.id).await.unwrap(); println!("record deleted"); println!("data used: {}", client.get_app().await.unwrap().data_used); }