syncthing_types/system/
status.rs1use crate::{DeviceID, Timestamp};
2use http::Uri;
3use serde::{Deserialize, Serialize};
4use std::collections::HashMap;
5use std::path::PathBuf;
6
7#[non_exhaustive]
8#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
9#[serde(rename_all = "camelCase")]
10pub struct DiscoveryStatus {
11 #[serde(rename = "discoveryEnabled")]
12 pub enabled: bool,
13 #[serde(rename = "discoveryStatus")]
14 pub status: HashMap<String, String>,
15}
16
17#[non_exhaustive]
18#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
19#[serde(rename_all = "camelCase")]
20pub struct ListenStatusEntry {
21 pub error: Option<String>,
22 #[serde(default)]
23 #[serde(with = " http_serde_ext::uri::vec")]
24 pub lan_addresses: Vec<Uri>,
25 #[serde(default)]
26 #[serde(with = " http_serde_ext::uri::vec")]
27 pub wan_addresses: Vec<Uri>,
28}
29
30#[non_exhaustive]
31#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
32#[serde(rename_all = "camelCase")]
33pub struct ConnectionStatusEntry {
34 pub when: Timestamp,
35 pub error: Option<String>,
36}
37
38#[non_exhaustive]
39#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
40#[serde(rename_all = "camelCase")]
41pub struct Status {
42 #[serde(rename = "myID")]
43 pub device_id: DeviceID,
44 pub goroutines: u32,
45 pub alloc: u32,
46 pub sys: u32,
47 pub tilde: PathBuf,
48 #[serde(flatten)]
49 pub discovery: Option<DiscoveryStatus>,
50 #[serde(default)]
51 #[serde(with = "http_serde_ext::uri::hash_map_key")]
52 pub connection_service_status: HashMap<Uri, ListenStatusEntry>,
53 #[serde(default)]
54 #[serde(with = "http_serde_ext::uri::hash_map_key")]
55 pub last_dial_status: HashMap<Uri, ConnectionStatusEntry>,
56 pub path_separator: String,
57 pub ur_version_max: u32,
58 pub uptime: u32,
59 pub start_time: Timestamp,
60 pub gui_address_overridden: bool,
61 #[serde(with = "http_serde_ext::uri")]
62 pub gui_address_used: Uri,
63}