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}