assistant_settings.rs

 1use schemars::JsonSchema;
 2use serde::{Deserialize, Serialize};
 3use settings::{Settings, SettingsSources};
 4
 5#[derive(Default, Debug, Deserialize, Serialize, Clone)]
 6pub struct AssistantSettings {
 7    pub enabled: bool,
 8}
 9
10#[derive(Default, Debug, Deserialize, Serialize, Clone, JsonSchema)]
11pub struct AssistantSettingsContent {
12    pub enabled: Option<bool>,
13}
14
15impl Settings for AssistantSettings {
16    const KEY: Option<&'static str> = Some("assistant_v2");
17
18    type FileContent = AssistantSettingsContent;
19
20    fn load(
21        sources: SettingsSources<Self::FileContent>,
22        _: &mut gpui::AppContext,
23    ) -> anyhow::Result<Self> {
24        Ok(sources.json_merge().unwrap_or_else(|_| Default::default()))
25    }
26}