Skip to main content

ripestat_common/resources/
ris_peer_count.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4pub struct RisPeerCountRequest {
5    pub starttime: Option<String>,
6    pub endtime: Option<String>,
7    pub v4_full_prefix_threshold: Option<i64>,
8    pub v6_full_prefix_threshold: Option<i64>,
9}
10
11#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
12pub struct RisPeerCountResponse {
13    pub starttime: String,
14    pub endtime: String,
15    pub peer_count: PeerCount,
16    pub v4_full_prefix_threshold: i64,
17    pub v6_full_prefix_threshold: i64,
18}
19
20#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
21pub struct PeerCount {
22    pub v4: V4Peers,
23    pub v6: V6Peers,
24}
25
26#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
27pub struct V4Peers {
28    pub total: Vec<Total>,
29    pub full_feed: Vec<FullFeed>,
30}
31
32#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
33pub struct V6Peers {
34    pub total: Vec<Total>,
35    pub full_feed: Vec<FullFeed>,
36}
37
38#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
39pub struct Total {
40    pub timestamp: String,
41    pub count: i64,
42}
43
44#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
45pub struct FullFeed {
46    pub timestamp: String,
47    pub count: i64,
48}