Skip to main content

options/validation/
outcome.rs

1/// Indicates the validation outcome.
2#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
3pub enum Outcome {
4    /// Indicates validation succeeded.
5    #[default]
6    Succeeded,
7
8    /// Indicates validation was skipped.
9    Skipped,
10}
11
12impl Outcome {
13    /// Determines whether the validation succeeded.
14    #[inline]
15    pub fn succeeded(&self) -> bool {
16        matches!(self, Self::Succeeded)
17    }
18
19    /// Determines whether the validation was skipped.
20    #[inline]
21    pub fn skipped(&self) -> bool {
22        matches!(self, Self::Skipped)
23    }
24}
25
26#[cfg(test)]
27mod tests {
28    use super::*;
29
30    #[test]
31    fn success_should_indicate_succeeded() {
32        // arrange
33        let result = Outcome::Succeeded;
34
35        // act
36        let succeeded = result.succeeded();
37
38        // assert
39        assert!(succeeded);
40    }
41
42    #[test]
43    fn skip_should_indicate_skipped() {
44        // arrange
45        let result = Outcome::Skipped;
46
47        // act
48        let skipped = result.skipped();
49
50        // assert
51        assert!(skipped);
52    }
53}