feature_set/
require.rs

1use crate::feature::Feature;
2
3/// A required feature with a requirement level.
4///
5/// A required feature is either mandatory or optional.
6#[derive(Debug, Clone)]
7pub struct Require {
8    pub(crate) optional: bool,
9    pub(crate) feature: Feature,
10}
11
12impl Require {
13    pub fn feature(&self) -> &Feature {
14        &self.feature
15    }
16
17    pub fn optional(&self) -> bool {
18        self.optional
19    }
20}
21
22impl From<Feature> for Require {
23    fn from(feature: Feature) -> Self {
24        Self {
25            optional: false,
26            feature,
27        }
28    }
29}