settings/
messages.rs

1// SPDX-FileCopyrightText: 2024 Foundation Devices, Inc. <hello@foundation.xyz>
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4use super::*;
5pub use crate::types::messages::*;
6
7#[derive(Debug, server::Message)]
8#[response(global::SystemTheme)]
9pub struct GetPrimeColor;
10
11#[derive(Debug, server::Message)]
12pub struct FlushAll {
13    /// if true, flushes all dirty files regardless of age.
14    /// should be called on shutdown.
15    pub force: bool,
16}
17
18impl server::FromScalar<1> for FlushAll {
19    fn from_scalar([force]: [u32; 1]) -> Self { Self { force: force != 0 } }
20}
21
22impl server::AsScalar<1> for FlushAll {
23    fn as_scalar(&self) -> [u32; 1] { [self.force as u32] }
24}
25
26#[derive(Debug, server::Message, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]
27#[response(global::TimeZone)]
28pub struct LookupTimeZone {
29    pub name: String,
30    pub offset_minutes: i32,
31}
32
33#[derive(Debug, server::Message, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]
34#[response(Vec<global::TimeZone>)]
35pub struct ListTimeZone {
36    pub offset: Option<u32>,
37    pub count: Option<u32>,
38}
39
40#[derive(Debug, server::Message)]
41#[response(())]
42pub struct ResetSettings;