opys_mojang_rules/
ruleset.rs1use crate::os::{OsName, OsOptions, RuleError};
2use crate::rule::{satisfies_rule, Rule, RuleAction};
3
4pub type Ruleset = Vec<Rule>;
5
6pub fn satisfies_ruleset(
7 ruleset: &Ruleset,
8 os: &OsOptions,
9 feats: &[String],
10) -> Result<bool, RuleError> {
11 for rule in ruleset {
12 if !satisfies_rule(rule, os, feats)? {
13 return Ok(false);
14 }
15 }
16 Ok(true)
17}
18
19pub fn empty_ruleset() -> Ruleset {
20 Vec::new()
21}
22
23pub fn allow_os_ruleset(name: OsName) -> Ruleset {
24 vec![Rule::Os {
25 action: RuleAction::Allow,
26 os: crate::os::OsConstraint {
27 name: Some(name),
28 ..Default::default()
29 },
30 }]
31}