alfred_workflow_rust_project/
workflow_keychain.rs

1use crate::alfred::AlfredEnv;
2use crate::workflow::AlfredWorkflow;
3use security_framework::passwords;
4
5impl AlfredWorkflow {
6    pub fn get_generic_password(&self, name: &str) -> String {
7        let service = self.get_workflow_bundle_id();
8        String::from_utf8(
9            passwords::get_generic_password(service.as_str(), name).unwrap_or_default(),
10        )
11        .unwrap_or_default()
12    }
13
14    pub fn set_generic_password(&self, name: &str, password: &str) -> bool {
15        let service = self.get_workflow_bundle_id();
16        passwords::set_generic_password(service.as_str(), name, password.as_bytes()).is_ok()
17    }
18}