1use std::net::IpAddr;
2
3use serde_with::skip_serializing_none;
4
5#[derive(Debug, Clone, serde::Deserialize, PartialEq, Eq)]
6
7pub struct Log {
8 pub id: u64,
10 pub message: String,
12 pub timestamp: u64,
14 #[serde(rename = "type")]
17 pub log_type: i8,
18}
19
20#[derive(Debug, Clone, serde::Deserialize, PartialEq, Eq)]
21pub struct PeerLog {
22 pub id: i64,
24 pub ip: IpAddr,
26 pub timestamp: u64,
28 pub blocked: bool,
30 pub reason: Option<String>,
32}
33
34#[derive(
35 Debug,
36 Clone,
37 Copy,
38 PartialEq,
39 Eq,
40 PartialOrd,
41 Ord,
42 serde_repr::Serialize_repr,
43 serde_repr::Deserialize_repr,
44)]
45#[repr(i8)]
46pub enum LogLevel {
47 Normal = 1,
48 Info = 2,
49 Warning = 4,
50 Critical = 8,
51}
52
53#[cfg_attr(feature = "builder", derive(typed_builder::TypedBuilder))]
54#[cfg_attr(
55 feature = "builder",
56 builder(field_defaults(default, setter(strip_option)))
57)]
58#[derive(Debug, Clone, serde::Serialize, PartialEq, Eq)]
59#[skip_serializing_none]
60pub struct GetLogsArg {
61 pub normal: Option<bool>,
63 pub info: Option<bool>,
65 pub warning: Option<bool>,
67 pub critical: Option<bool>,
69 pub last_known_id: Option<i64>,
71}