bart/
conditional.rs

1pub trait Conditional {
2    fn val(&self) -> bool;
3}
4
5impl Conditional for bool {
6    fn val(&self) -> bool {
7        *self
8    }
9}
10
11impl<T> Conditional for Vec<T> {
12    fn val(&self) -> bool {
13        !self.is_empty()
14    }
15}
16
17impl<'a, T> Conditional for &'a [T] {
18    fn val(&self) -> bool {
19        !self.is_empty()
20    }
21}
22
23impl<'a, T: Conditional> Conditional for &'a T {
24    fn val(&self) -> bool {
25        (*self).val()
26    }
27}