mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
59 lines
1.4 KiB
Rust
59 lines
1.4 KiB
Rust
use flowy_derive::ProtoBuf;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(ProtoBuf, Default, Debug, Clone)]
|
|
pub struct UserPreferencesPB {
|
|
#[pb(index = 1)]
|
|
user_id: String,
|
|
|
|
#[pb(index = 2)]
|
|
appearance_setting: AppearanceSettingsPB,
|
|
}
|
|
|
|
#[derive(ProtoBuf, Serialize, Deserialize, Debug, Clone)]
|
|
pub struct AppearanceSettingsPB {
|
|
#[pb(index = 1)]
|
|
pub theme: String,
|
|
|
|
#[pb(index = 2)]
|
|
#[serde(default)]
|
|
pub locale: LocaleSettingsPB,
|
|
|
|
#[pb(index = 3)]
|
|
#[serde(default = "DEFAULT_RESET_VALUE")]
|
|
pub reset_as_default: bool,
|
|
}
|
|
|
|
const DEFAULT_RESET_VALUE: fn() -> bool = || APPEARANCE_RESET_AS_DEFAULT;
|
|
|
|
#[derive(ProtoBuf, Serialize, Deserialize, Debug, Clone)]
|
|
pub struct LocaleSettingsPB {
|
|
#[pb(index = 1)]
|
|
pub language_code: String,
|
|
|
|
#[pb(index = 2)]
|
|
pub country_code: String,
|
|
}
|
|
|
|
impl std::default::Default for LocaleSettingsPB {
|
|
fn default() -> Self {
|
|
Self {
|
|
language_code: "en".to_owned(),
|
|
country_code: "".to_owned(),
|
|
}
|
|
}
|
|
}
|
|
|
|
pub const APPEARANCE_DEFAULT_THEME: &str = "light";
|
|
const APPEARANCE_RESET_AS_DEFAULT: bool = true;
|
|
|
|
impl std::default::Default for AppearanceSettingsPB {
|
|
fn default() -> Self {
|
|
AppearanceSettingsPB {
|
|
theme: APPEARANCE_DEFAULT_THEME.to_owned(),
|
|
locale: LocaleSettingsPB::default(),
|
|
reset_as_default: APPEARANCE_RESET_AS_DEFAULT,
|
|
}
|
|
}
|
|
}
|