1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/// An action that adds or removes a provided/required feature.
///
/// Example:
/// ```
/// # use feature_set::{Action, add_provide, del_provide, FeatureSet, Provide};
/// const PROVIDED: &[Action<Provide>] = &[
///     add_provide(("foo", 0), "2012-02-21", (1, 2, 3)),
///     add_provide(("foo", 1), "2012-02-22", (1, 2, 3)),
///     add_provide(("bar", 1), "2012-03-21", (1, 2, 4)),
///     del_provide(("foo", 0), "2012-04-21", (1, 2, 5)),
/// ];
///
/// let fs = FeatureSet::from_provides(PROVIDED);
/// assert_eq!("bar:v1, foo:v1", fs.to_string());
/// ```
#[derive(Debug, Clone)]
pub enum Action<T> {
    Add(T),
    Delete(T),
}