bitwarden_state/settings/
mod.rs

1//! Type-safe settings repository for storing application configuration and state.
2//!
3//! This module provides a type-safe key-value API for storing settings, backed by
4//! the SDK's repository pattern.
5//!
6//! # Usage
7//!
8//! ```rust,ignore
9//! use bitwarden_state::register_setting_key;
10//! use serde::{Deserialize, Serialize};
11//!
12//! #[derive(Serialize, Deserialize)]
13//! struct AppConfig {
14//!     theme: String,
15//!     auto_save: bool,
16//! }
17//!
18//! // Register a type-safe key
19//! register_setting_key!(const CONFIG: AppConfig = "app_config");
20//!
21//! // Access settings via client.platform().state().setting()
22//! async fn example(client: &bitwarden_core::Client) -> Result<(), Box<dyn std::error::Error>> {
23//!     // Get a setting handle
24//!     let setting = client.platform().state().setting(CONFIG)?;
25//!
26//!     // Get value
27//!     let config: Option<AppConfig> = setting.get().await?;
28//!
29//!     // Update value
30//!     let new_config = AppConfig {
31//!         theme: "dark".to_string(),
32//!         auto_save: true,
33//!     };
34//!     setting.update(new_config).await?;
35//!
36//!     // Delete setting
37//!     setting.delete().await?;
38//!
39//!     Ok(())
40//! }
41//! ```
42
43mod key;
44mod setting;
45
46pub use key::Key;
47pub use setting::{Setting, SettingItem, SettingsError};