ferron/util/
non_standard_code_structs.rs1use 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}