use serde::{self, Deserialize, Serialize};
use serde_repr::*;
use super::string_saperated_with_vertical_bar;
#[derive(Debug, Clone, Deserialize)]
pub struct InfoResponse {
pub dl_info_speed: u64,
pub dl_info_data: u64,
pub up_info_speed: u64,
pub up_info_data: u64,
pub dl_rate_limit: u64,
pub up_rate_limit: u64,
pub dht_nodes: u64,
pub connection_status: ConnectionStatus,
}
#[derive(Debug, Clone, Deserialize)]
pub enum ConnectionStatus {
#[serde(rename = "connected")]
Connected,
#[serde(rename = "firewalled")]
Firewalled,
#[serde(rename = "disconnected")]
Disconnected,
}
#[derive(Serialize_repr, Deserialize_repr, PartialEq, Debug, Clone)]
#[repr(u8)]
pub enum SpeedLimitsModeResponse {
Normal = 0,
Alternative = 1,
}
#[derive(Debug, Clone, Default, Serialize)]
pub struct SetDownloadLimitForm {
pub limit: u64,
}
#[derive(Debug, Clone, Default, Serialize)]
pub struct SetUploadLimitForm {
pub limit: u64,
}
#[derive(Debug, Clone, Default, Serialize)]
pub struct BanPeersForm {
#[serde(serialize_with = "string_saperated_with_vertical_bar::serialize")]
pub peers: Vec<String>,
}