rswappalyzer_engine/core/
enums.rs1use serde::{Deserialize, Serialize};
2use std::fmt::{Display, Formatter};
3
4#[derive(Debug, Clone, Eq, Hash, PartialEq, Serialize, Deserialize)]
6pub enum MatchScope {
7 Url,
8 Html,
9 Js,
10 Script,
11 ScriptSrc,
12 Header,
13 Cookie,
14 Meta,
15}
16
17impl Display for MatchScope {
18 fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
19 match self {
20 MatchScope::Url => write!(f, "url"),
21 MatchScope::Html => write!(f, "html"),
22 MatchScope::Js => write!(f, "html"),
23 MatchScope::Script => write!(f, "script"),
24 MatchScope::ScriptSrc => write!(f, "script"),
25 MatchScope::Meta => write!(f, "meta"),
26 MatchScope::Header => write!(f, "header"),
27 MatchScope::Cookie => write!(f, "cookie"),
28 }
29 }
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
34pub enum MatchType {
35 Contains,
36 Regex,
37 Exists, }
39
40impl Default for MatchType {
41 fn default() -> Self {
42 MatchType::Regex
43 }
44}
45
46#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, Default)]
48#[serde(rename_all = "lowercase")]
49pub enum MatchCondition {
50 And,
51 #[default]
52 Or,
53}
54
55#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
58pub enum EvidenceKind {
59 LiteralBased,
64 ExistsOnly,
66 NoLiteral,
68}