Skip to main content

rmv_bevy_testing_tools/
assertions.rs

1use speculoos::{AssertionFailure, Spec};
2
3pub trait IsContainedIn<T>
4where
5    T: PartialEq + std::fmt::Debug,
6{
7    fn is_contained_in(&mut self, collection: &[T]);
8}
9
10#[cfg_attr(coverage_nightly, coverage(off))]
11impl<T> IsContainedIn<T> for Spec<'_, T>
12where
13    T: PartialEq + std::fmt::Debug,
14{
15    fn is_contained_in(&mut self, collection: &[T]) {
16        let subject = self.subject;
17        if !collection.contains(subject) {
18            AssertionFailure::from_spec(self)
19                .with_expected(format!("<{subject:?}> to be contained in <{collection:?}>"))
20                .with_actual("but wasn't.".into())
21                .fail();
22        }
23    }
24}