ilmen_http/http/configuration/
configuration.rs

1use 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}