use db_keystore::{DbKeyStore, DbKeyStoreConfig};
use keyring_core::{Result, api::CredentialStoreApi};
use std::collections::HashMap;
use zeroize::Zeroizing;
const SERVICE: &str = "basic_example";
fn main() -> Result<()> {
let config = DbKeyStoreConfig::default();
let store = DbKeyStore::new(config)?;
println!("using store at {}", store.path());
let entry = store.build(SERVICE, "alice", None)?;
entry.set_password("dromomeryx")?;
let entry = store.build(SERVICE, "bob", None)?;
entry.set_password("horse-staple")?;
let results = store.search(&HashMap::from([("service", SERVICE), ("user", "alice")]))?;
let password = Zeroizing::new(results.first().unwrap().get_password()?);
assert_eq!(password.as_str(), "dromomeryx");
for entry in store.search(&HashMap::from([
("service", SERVICE),
("user", "alice|bob"),
]))? {
entry.delete_credential()?;
}
Ok(())
}