1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use crate::{Expected, ExpectedItems};

impl<T> Default for ExpectedItems<T> {
    fn default() -> Self {
        ExpectedItems { items: Vec::new() }
    }
}

impl<T> ExpectedItems<T> {
    /*
    pub fn matched(&self, actual: &T) -> bool
    where
        T: std::cmp::PartialEq,
    {
        if 0 < self.items.len() {
            match self.items[0] {
                Expected::Any(any) => {
                    for exp in any.items {
                        if *exp == *actual {
                            return true;
                        }
                    }
                    return false;
                }
                Expected::Exact(exp) => {
                    if *exp == *actual {
                        true
                    } else {
                        false
                    }
                }
            }
        } else {
            false
        }
    }
    */

    pub fn get(&self, index: usize) -> Option<&Expected<T>> {
        if index < self.items.len() {
            Some(&self.items[index])
        } else {
            None
        }
    }
}