Skip to main content

07_right_store/
07_right_store.rs

1use localauthentication::prelude::*;
2use std::time::{SystemTime, UNIX_EPOCH};
3
4fn unique_identifier(prefix: &str) -> String {
5    let now = SystemTime::now()
6        .duration_since(UNIX_EPOCH)
7        .unwrap_or_default()
8        .as_nanos();
9    format!("dev.doomfish.localauthentication.{prefix}.{now}")
10}
11
12fn main() -> Result<(), Box<dyn std::error::Error>> {
13    let store = LARightStore::shared()?;
14    let right = LARight::new()?;
15    let identifier = unique_identifier("store");
16
17    match store.save_right(&right, &identifier) {
18        Ok(persisted) => {
19            println!("saved state: {:?}", persisted.state()?);
20            store.remove_right(&persisted)?;
21        }
22        Err(error) => {
23            println!("save_right expectedly failed in unsigned/headless environments: {error}");
24        }
25    }
26
27    println!("✅ right-store smoke OK");
28    Ok(())
29}