use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, PartialEq, Eq, Deserialize, Serialize)]
pub struct Network {
pub proxy: Option<exchange::proxy::Proxy>,
pub server_url: Option<String>,
#[serde(skip)]
pub server_auth_token: Option<String>,
pub trade_fetch_mode: TradeFetchMode,
}
impl Network {
pub fn for_persistence(&self) -> Self {
Self {
proxy: self.proxy.clone().map(|p| p.without_auth()),
..self.clone()
}
}
}
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum TradeFetchMode {
#[default]
Off,
Exchange,
Server,
}
impl std::fmt::Display for TradeFetchMode {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::Off => write!(f, "Off"),
Self::Exchange => write!(f, "Exchange"),
Self::Server => write!(f, "Server"),
}
}
}