use secret_service::{EncryptionType, SecretService};
use std::{collections::HashMap, str};
#[tokio::main(flavor = "current_thread")]
async fn main() {
let ss = SecretService::connect(EncryptionType::Plain).await.unwrap();
let collection = ss.get_default_collection().await.unwrap();
let mut properties = HashMap::new();
properties.insert("test", "test_value");
collection
.create_item(
"test_label", properties,
b"test_secret", false, "text/plain", )
.await
.unwrap();
let mut search_properties = HashMap::new();
search_properties.insert("test", "test_value");
let search_items = ss.search_items(search_properties).await.unwrap();
let item = match search_items.unlocked.first() {
Some(item) => item,
None => {
let locked_item = search_items
.locked
.first()
.expect("Search didn't return any items!");
locked_item.unlock().await.unwrap();
locked_item
}
};
let secret = item.get_secret().await.unwrap();
println!("Retrieved secret: {:?}", str::from_utf8(&secret).unwrap());
assert_eq!(secret, b"test_secret");
item.delete().await.unwrap();
}