Skip to main content

ephemeris_forge_github/api/request/rulesets/
rules.rs

1use facet::Facet;
2use facet_value::Value;
3
4use crate::Rules;
5use crate::config::RuleRef;
6
7#[derive(Facet)]
8#[repr(u8)]
9#[expect(dead_code, reason = "the rule payloads are only read by the encoder")]
10#[facet(untagged)]
11pub(super) enum RuleEntry<'a> {
12    Managed(RuleRef<'a>),
13    Unmanaged(&'a Value),
14}
15
16pub(super) fn rule_entries<'a>(rules: &'a Rules, unmanaged: &'a [Value]) -> Vec<RuleEntry<'a>> {
17    let managed = rules.entries().into_iter().map(RuleEntry::Managed);
18    managed
19        .chain(unmanaged.iter().map(RuleEntry::Unmanaged))
20        .collect()
21}