123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- use flowy_derive::ProtoBuf;
- use serde::{Deserialize, Serialize};
- #[derive(ProtoBuf, Default, Debug, Clone)]
- pub struct UserPreferences {
- #[pb(index = 1)]
- user_id: String,
- #[pb(index = 2)]
- appearance_setting: AppearanceSettings,
- }
- #[derive(ProtoBuf, Serialize, Deserialize, Debug, Clone)]
- pub struct AppearanceSettings {
- #[pb(index = 1)]
- pub theme: String,
- #[pb(index = 2)]
- #[serde(default)]
- pub locale: LocaleSettings,
- #[pb(index = 3)]
- #[serde(default = "reset_default_value")]
- pub reset_as_default: bool,
- }
- #[derive(ProtoBuf, Serialize, Deserialize, Debug, Clone)]
- pub struct LocaleSettings {
- #[pb(index = 1)]
- pub language_code: String,
- #[pb(index = 2)]
- pub country_code: String,
- }
- impl std::default::Default for LocaleSettings {
- fn default() -> Self {
- Self {
- language_code: "en".to_owned(),
- country_code: "".to_owned(),
- }
- }
- }
- fn reset_default_value() -> bool {
- APPEARANCE_RESET_AS_DEFAULT
- }
- pub const APPEARANCE_DEFAULT_THEME: &str = "light";
- pub const APPEARANCE_RESET_AS_DEFAULT: bool = true;
- impl std::default::Default for AppearanceSettings {
- fn default() -> Self {
- AppearanceSettings {
- theme: APPEARANCE_DEFAULT_THEME.to_owned(),
- locale: LocaleSettings::default(),
- reset_as_default: APPEARANCE_RESET_AS_DEFAULT,
- }
- }
- }
|