ferron/util/
non_standard_code_structs.rs

1use crate::ferron_util::ip_blocklist::IpBlockList;
2use fancy_regex::Regex;
3
4#[allow(dead_code)]
5pub struct NonStandardCode {
6  pub status_code: u16,
7  pub url: Option<String>,
8  pub regex: Option<Regex>,
9  pub location: Option<String>,
10  pub realm: Option<String>,
11  pub disable_brute_force_protection: bool,
12  pub user_list: Option<Vec<String>>,
13  pub users: Option<IpBlockList>,
14}
15
16impl NonStandardCode {
17  #[allow(clippy::too_many_arguments)]
18  pub fn new(
19    status_code: u16,
20    url: Option<String>,
21    regex: Option<Regex>,
22    location: Option<String>,
23    realm: Option<String>,
24    disable_brute_force_protection: bool,
25    user_list: Option<Vec<String>>,
26    users: Option<IpBlockList>,
27  ) -> Self {
28    Self {
29      status_code,
30      url,
31      regex,
32      location,
33      realm,
34      disable_brute_force_protection,
35      user_list,
36      users,
37    }
38  }
39}
40
41pub struct NonStandardCodesWrap {
42  pub domain: Option<String>,
43  pub ip: Option<String>,
44  pub non_standard_codes: Vec<NonStandardCode>,
45  pub locations: Vec<NonStandardCodesLocationWrap>,
46}
47
48impl NonStandardCodesWrap {
49  pub fn new(
50    domain: Option<String>,
51    ip: Option<String>,
52    non_standard_codes: Vec<NonStandardCode>,
53    locations: Vec<NonStandardCodesLocationWrap>,
54  ) -> Self {
55    Self {
56      domain,
57      ip,
58      non_standard_codes,
59      locations,
60    }
61  }
62}
63
64pub struct NonStandardCodesLocationWrap {
65  pub path: String,
66  pub non_standard_codes: Vec<NonStandardCode>,
67}
68
69impl NonStandardCodesLocationWrap {
70  pub fn new(path: String, non_standard_codes: Vec<NonStandardCode>) -> Self {
71    Self {
72      path,
73      non_standard_codes,
74    }
75  }
76}