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};