Skip to main content

opys_mojang_rules/
ruleset.rs

1use 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}