use std::net::IpAddr;
use serde_with::skip_serializing_none;
#[derive(Debug, Clone, serde::Deserialize, PartialEq, Eq)]
pub struct Log {
pub id: u64,
pub message: String,
pub timestamp: u64,
#[serde(rename = "type")]
pub log_type: i8,
}
#[derive(Debug, Clone, serde::Deserialize, PartialEq, Eq)]
pub struct PeerLog {
pub id: i64,
pub ip: IpAddr,
pub timestamp: u64,
pub blocked: bool,
pub reason: Option<String>,
}
#[derive(
Debug,
Clone,
Copy,
PartialEq,
Eq,
PartialOrd,
Ord,
serde_repr::Serialize_repr,
serde_repr::Deserialize_repr,
)]
#[repr(i8)]
pub enum LogLevel {
Normal = 1,
Info = 2,
Warning = 4,
Critical = 8,
}
#[cfg_attr(feature = "builder", derive(typed_builder::TypedBuilder))]
#[cfg_attr(
feature = "builder",
builder(field_defaults(default, setter(strip_option)))
)]
#[derive(Debug, Clone, serde::Serialize, PartialEq, Eq)]
#[skip_serializing_none]
pub struct GetLogsArg {
pub normal: Option<bool>,
pub info: Option<bool>,
pub warning: Option<bool>,
pub critical: Option<bool>,
pub last_known_id: Option<i64>,
}