summaryrefslogtreecommitdiff
path: root/src/modules/switch.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/switch.rs')
-rw-r--r--src/modules/switch.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/modules/switch.rs b/src/modules/switch.rs
index bbb9e98..943a81d 100644
--- a/src/modules/switch.rs
+++ b/src/modules/switch.rs
@@ -47,6 +47,8 @@ impl Node for Switch {
#[derive(Deserialize)]
#[serde(rename_all = "snake_case")]
enum Condition {
+ Any(Vec<Condition>),
+ All(Vec<Condition>),
IsWebsocketUpgrade,
IsPost,
IsGet,
@@ -66,6 +68,8 @@ impl Condition {
Condition::PathIs(path) => req.uri().path() == path,
Condition::IsPost => req.method() == Method::POST,
Condition::IsGet => req.method() == Method::GET,
+ Condition::Any(conds) => conds.iter().any(|c| c.test(req)),
+ Condition::All(conds) => conds.iter().all(|c| c.test(req)),
}
}
}