ephemeris_forge_forgejo/config/
actions_variables.rs1use std::collections::BTreeMap;
2
3use ephemeris_forge::{Mode, VariableNameError, VariableNameRules};
4use facet::Facet;
5
6const NAME_RULES: VariableNameRules = VariableNameRules {
8 reserved_names: &["CI"],
9 reserved_prefixes: &["FORGEJO_", "GITEA_", "GITHUB_"],
10};
11
12#[derive(Clone, Debug, Eq, Facet, PartialEq)]
14#[facet(deny_unknown_fields)]
15pub struct ActionsVariables {
16 pub mode: Mode,
18 pub variables: BTreeMap<String, String>,
20}
21
22impl ActionsVariables {
23 pub fn validate(&self) -> Result<(), VariableNameError> {
28 NAME_RULES.check(self.variables.keys().map(String::as_str))
29 }
30}