Skip to main content

qbit_rs/model/
transfer.rs

1#[derive(Debug, Clone, serde::Deserialize, PartialEq, Eq)]
2pub struct TransferInfo {
3    /// Global download rate (bytes/s)
4    pub dl_info_speed: u64,
5    /// Data downloaded this session (bytes)
6    pub dl_info_data: u64,
7    /// Global upload rate (bytes/s)
8    pub up_info_speed: u64,
9    /// Data uploaded this session (bytes)
10    pub up_info_data: u64,
11    /// Download rate limit (bytes/s)
12    pub dl_rate_limit: u64,
13    /// Upload rate limit (bytes/s)
14    pub up_rate_limit: u64,
15    /// DHT nodes connected to
16    pub dht_nodes: u64,
17    /// Connection status. Possible values: connected, disconnected, firewalled
18    pub connection_status: ConnectionStatus,
19}
20
21#[derive(Debug, Clone, serde::Deserialize, PartialEq, Eq)]
22#[serde(rename_all = "camelCase")]
23pub enum ConnectionStatus {
24    Connected,
25    Disconnected,
26    Firewalled,
27    #[serde(other)]
28    Unknown,
29}
30
31/// Global and alternative speed limits returned by `transfer/getSpeedLimits`.
32/// All values are in KiB/s, `-1` means unlimited.
33/// Added in qBittorrent 5.2.0 (Web API v2.16.0).
34#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Eq)]
35#[serde(rename_all = "camelCase")]
36pub struct SpeedLimits {
37    /// Global upload limit (KiB/s, -1 = unlimited)
38    #[serde(rename = "up_limit")]
39    pub upload_limit: i64,
40    /// Global download limit (KiB/s, -1 = unlimited)
41    #[serde(rename = "dl_limit")]
42    pub download_limit: i64,
43    /// Alternative upload limit (KiB/s, -1 = unlimited)
44    #[serde(rename = "alt_up_limit")]
45    pub alternative_upload_limit: i64,
46    /// Alternative download limit (KiB/s, -1 = unlimited)
47    #[serde(rename = "alt_dl_limit")]
48    pub alternative_download_limit: i64,
49}