Skip to main content

aver_rt/
service_types.rs

1use crate::{AverDisplay, AverList};
2
3#[derive(Clone, Debug, PartialEq, Eq, Hash, Ord, PartialOrd)]
4pub struct TerminalSize {
5    pub width: i64,
6    pub height: i64,
7}
8
9impl AverDisplay for TerminalSize {
10    fn aver_display(&self) -> String {
11        format!(
12            "Terminal.Size(width: {}, height: {})",
13            self.width.aver_display_inner(),
14            self.height.aver_display_inner()
15        )
16    }
17
18    fn aver_display_inner(&self) -> String {
19        self.aver_display()
20    }
21}
22
23#[derive(Clone, Debug, PartialEq, Eq, Hash, Ord, PartialOrd)]
24pub struct Header {
25    pub name: String,
26    pub value: String,
27}
28
29impl AverDisplay for Header {
30    fn aver_display(&self) -> String {
31        format!(
32            "Header(name: {}, value: {})",
33            self.name.aver_display_inner(),
34            self.value.aver_display_inner()
35        )
36    }
37
38    fn aver_display_inner(&self) -> String {
39        self.aver_display()
40    }
41}
42
43#[derive(Clone, Debug, PartialEq)]
44pub struct HttpResponse {
45    pub status: i64,
46    pub body: String,
47    pub headers: AverList<Header>,
48}
49
50impl AverDisplay for HttpResponse {
51    fn aver_display(&self) -> String {
52        format!(
53            "HttpResponse(status: {}, body: {}, headers: {})",
54            self.status.aver_display_inner(),
55            self.body.aver_display_inner(),
56            self.headers.aver_display_inner()
57        )
58    }
59
60    fn aver_display_inner(&self) -> String {
61        self.aver_display()
62    }
63}
64
65#[derive(Clone, Debug, PartialEq)]
66pub struct HttpRequest {
67    pub method: String,
68    pub path: String,
69    pub body: String,
70    pub headers: AverList<Header>,
71}
72
73impl AverDisplay for HttpRequest {
74    fn aver_display(&self) -> String {
75        format!(
76            "HttpRequest(method: {}, path: {}, body: {}, headers: {})",
77            self.method.aver_display_inner(),
78            self.path.aver_display_inner(),
79            self.body.aver_display_inner(),
80            self.headers.aver_display_inner()
81        )
82    }
83
84    fn aver_display_inner(&self) -> String {
85        self.aver_display()
86    }
87}
88
89#[derive(Clone, Debug, PartialEq, Eq, Hash, Ord, PartialOrd)]
90pub struct TcpConnection {
91    pub id: String,
92    pub host: String,
93    pub port: i64,
94}
95
96impl AverDisplay for TcpConnection {
97    fn aver_display(&self) -> String {
98        format!(
99            "Tcp.Connection(id: {}, host: {}, port: {})",
100            self.id.aver_display_inner(),
101            self.host.aver_display_inner(),
102            self.port.aver_display_inner()
103        )
104    }
105
106    fn aver_display_inner(&self) -> String {
107        self.aver_display()
108    }
109}