use oxia::OxiaClient;
use tracing::info;
use tracing::level_filters::LevelFilter;
#[tokio::main]
async fn main() {
tracing_subscriber::fmt()
.with_env_filter(
tracing_subscriber::EnvFilter::builder()
.with_default_directive(LevelFilter::INFO.into())
.from_env_lossy(),
)
.with_target(false)
.init();
let client = OxiaClient::connect("localhost:6648").await.unwrap();
let payload = "payload";
for key in ["key1", "key2", "key3"] {
let put_result = client.put(key, payload).await.unwrap();
info!(
"put the value. key {:?} value {:?} version {:?}",
put_result.key, payload, put_result.version
);
}
let keys = client.list("", "/").await.unwrap();
info!("list the keys. keys {:?}", keys);
let records = client.range_scan("", "/").await.unwrap();
info!("range_scan result: {:?}", records);
let get_result = client.get("key1").await.unwrap();
info!(
"get the value. key {:?} value {:?} version {:?}",
get_result.key, get_result.value, get_result.version
);
client.delete("key1").await.unwrap();
info!("deleted key1");
let result = client.get("key1").await;
info!("get the value again. error: {:?}", result.unwrap_err());
client.delete_range("", "/").await.unwrap();
info!("delete range keys.");
let keys = client.list("", "/").await.unwrap();
info!("list the keys. keys {:?}", keys);
client.close().await.unwrap();
}