Skip to main content
KeyOS API Reference

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::BoardRevision)]
9pub struct GetBoardRevision;
10
11#[derive(Debug, server::Message)]
12#[response(global::SystemTheme)]
13pub struct GetPrimeColor;
14
15#[derive(Debug, server::Message)]
16pub struct FlushAll {
17    /// if true, flushes all dirty files regardless of age.
18    /// should be called on shutdown.
19    pub force: bool,
20}
21
22impl server::FromScalar<1> for FlushAll {
23    fn from_scalar([force]: [u32; 1]) -> Self { Self { force: force != 0 } }
24}
25
26impl server::AsScalar<1> for FlushAll {
27    fn as_scalar(&self) -> [u32; 1] { [self.force as u32] }
28}
29
30#[derive(Debug, server::Message, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]
31#[response(global::TimeZone)]
32pub struct LookupTimeZone {
33    pub name: String,
34    pub offset_minutes: i32,
35}
36
37#[derive(Debug, server::Message, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]
38#[response(Vec<global::TimeZone>)]
39pub struct ListTimeZone {
40    pub offset: Option<u32>,
41    pub count: Option<u32>,
42}
43
44#[derive(Debug, server::Message)]
45#[response(())]
46pub struct ResetSettings;