syncthing_rs/types/
cluster.rs

1//! All types required for the cluster endpoints
2
3use std::collections::HashMap;
4
5use chrono::Utc;
6use serde::{Deserialize, Serialize};
7
8#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
9pub struct PendingDevices {
10    #[serde(flatten)]
11    pub devices: HashMap<String, PendingDevice>,
12}
13
14#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
15pub struct PendingDevice {
16    pub time: chrono::DateTime<Utc>,
17    pub name: String,
18    pub address: std::net::SocketAddr,
19}
20
21#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
22pub struct PendingFolders {
23    #[serde(flatten)]
24    pub folders: HashMap<String, PendingFolder>,
25}
26
27#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
28#[serde(rename_all = "camelCase")]
29pub struct PendingFolder {
30    /// Maps deviceID to the information about that folder on that device
31    pub offered_by: HashMap<String, PendingFolderOfferer>,
32}
33
34#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
35#[serde(rename_all = "camelCase")]
36pub struct PendingFolderOfferer {
37    pub time: chrono::DateTime<Utc>,
38    pub label: String,
39    pub receive_encrypted: bool,
40    pub remote_encrypted: bool,
41}