mod action;
mod feature;
mod feature_set;
mod provide;
mod require;
mod since;
pub use crate::action::Action;
pub use crate::feature::Feature;
pub use crate::feature_set::FeatureSet;
pub use crate::provide::Provide;
pub use crate::require::Require;
pub use crate::since::Since;
#[cfg(test)]
mod tests;
pub const fn add_provide(
name_ver: (&'static str, u64),
since_date: &'static str,
since_ver: (u64, u64, u64),
) -> Action<Provide> {
Action::Add(Provide {
feature: Feature::new(name_ver, since_date, since_ver),
})
}
pub const fn del_provide(
name_ver: (&'static str, u64),
date: &'static str,
ver: (u64, u64, u64),
) -> Action<Provide> {
Action::Delete(Provide {
feature: Feature::new(name_ver, date, ver),
})
}
pub const fn add_require(
name: (&'static str, u64),
date: &'static str,
ver: (u64, u64, u64),
) -> Action<Require> {
Action::Add(Require {
optional: false,
feature: Feature::new(name, date, ver),
})
}
pub const fn del_require(
name: (&'static str, u64),
date: &'static str,
ver: (u64, u64, u64),
) -> Action<Require> {
Action::Delete(Require {
optional: false,
feature: Feature::new(name, date, ver),
})
}
pub const fn add_optional(
name: (&'static str, u64),
date: &'static str,
ver: (u64, u64, u64),
) -> Action<Require> {
Action::Add(Require {
optional: true,
feature: Feature::new(name, date, ver),
})
}