1use crate::{AverDisplay, AverList};
2
3#[derive(Clone, Debug, PartialEq, Eq, Hash, Ord, PartialOrd)]
4pub struct Header {
5 pub name: String,
6 pub value: String,
7}
8
9impl AverDisplay for Header {
10 fn aver_display(&self) -> String {
11 format!(
12 "Header(name: {}, value: {})",
13 self.name.aver_display_inner(),
14 self.value.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)]
24pub struct HttpResponse {
25 pub status: i64,
26 pub body: String,
27 pub headers: AverList<Header>,
28}
29
30impl AverDisplay for HttpResponse {
31 fn aver_display(&self) -> String {
32 format!(
33 "HttpResponse(status: {}, body: {}, headers: {})",
34 self.status.aver_display_inner(),
35 self.body.aver_display_inner(),
36 self.headers.aver_display_inner()
37 )
38 }
39
40 fn aver_display_inner(&self) -> String {
41 self.aver_display()
42 }
43}
44
45#[derive(Clone, Debug, PartialEq)]
46pub struct HttpRequest {
47 pub method: String,
48 pub path: String,
49 pub body: String,
50 pub headers: AverList<Header>,
51}
52
53impl AverDisplay for HttpRequest {
54 fn aver_display(&self) -> String {
55 format!(
56 "HttpRequest(method: {}, path: {}, body: {}, headers: {})",
57 self.method.aver_display_inner(),
58 self.path.aver_display_inner(),
59 self.body.aver_display_inner(),
60 self.headers.aver_display_inner()
61 )
62 }
63
64 fn aver_display_inner(&self) -> String {
65 self.aver_display()
66 }
67}
68
69#[derive(Clone, Debug, PartialEq, Eq, Hash, Ord, PartialOrd)]
70pub struct TcpConnection {
71 pub id: String,
72 pub host: String,
73 pub port: i64,
74}
75
76impl AverDisplay for TcpConnection {
77 fn aver_display(&self) -> String {
78 format!(
79 "Tcp.Connection(id: {}, host: {}, port: {})",
80 self.id.aver_display_inner(),
81 self.host.aver_display_inner(),
82 self.port.aver_display_inner()
83 )
84 }
85
86 fn aver_display_inner(&self) -> String {
87 self.aver_display()
88 }
89}