ilmen_http/http/configuration/
configuration.rs1use crate::http::security::service::SecurityProtocol;
2
3
4#[derive(Clone)]
5pub struct Config {
6 port: Port,
7 ip: Ip,
8 security: SecurityProtocol,
9 request_size: usize
10}
11
12
13type Port = i32;
14type Ip = String;
15
16impl Default for Config {
17 fn default() -> Self {
18 Self {
19 port: 7878,
20 ip: "0.0.0.0".to_string(),
21 security: SecurityProtocol::None,
22 request_size: 10485760
23 }
24 }
25}
26
27impl Config {
28 pub fn adresse(&self) -> String {
29 format!("{}:{}", self.ip, self.port)
30 }
31
32 pub fn security(&self) -> SecurityProtocol {
33 self.security.clone()
34 }
35
36 pub fn request_size(&self) -> usize {
37 self.request_size
38 }
39
40 pub fn initialize() -> Config {
41 Config::default()
42 }
43
44 pub fn with_request_size(&mut self, size: &usize) -> &mut Self {
45 self.request_size = *size;
46 self
47 }
48
49 pub fn with_security(&mut self, security: &SecurityProtocol) -> &mut Self {
50 self.security = security.clone();
51 self
52 }
53
54 pub fn with_adresse(&mut self, ip: &str, port: &Port) -> &mut Self {
55 self.ip = ip.to_string();
56 self.port = *port;
57 self
58 }
59}