Skip to main content

apimock_routing/rule_set/rule/
when.rs

1use serde::Deserialize;
2
3mod condition_statement;
4pub mod request;
5
6use crate::parsed_request::ParsedRequest;
7use request::Request;
8
9#[derive(Clone, Deserialize, Debug)]
10pub struct When {
11    pub request: Request,
12}
13
14impl When {
15    /// match with condition
16    pub fn is_match(
17        &self,
18        parsed_request: &ParsedRequest,
19        rule_idx: usize,
20        rule_set_idx: usize,
21    ) -> bool {
22        self.request
23            .is_match(parsed_request, rule_idx, rule_set_idx)
24    }
25
26    /// validate
27    pub fn validate(&self, rule_idx: usize, rule_set_idx: usize) -> bool {
28        self.request.validate(rule_idx, rule_set_idx)
29    }
30}
31
32impl std::fmt::Display for When {
33    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
34        let _ = write!(f, "{}", self.request);
35        Ok(())
36    }
37}