1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use crate::availability::Availability;

pub trait HasAvailability {

    fn define_availability(&self) -> Availability;

    fn actual_availability(&self) -> Availability;

    fn availability(&self) -> Availability {
        self.define_availability().bi_and(self.actual_availability())
    }

    fn is_available(&self) -> bool {
        self.define_availability().contains(self.actual_availability())
    }
}