pub struct Scope {
pub files: &'static [&'static str],
pub opt_in: &'static [&'static str],
pub not_during: &'static [GitState],
}Fields§
§files: &'static [&'static str]Extensions that trigger it. Empty means any change.
opt_in: &'static [&'static str]Config paths that opt a repository in. Empty means always on.
not_during: &'static [GitState]Git operations during which this check does not run.
The other half of “when does this apply”. files and opt_in say which
REPOSITORIES and which CHANGES; this says which repository STATES — a
question that used to be answered by one hard-coded CHERRY_PICK_HEAD
test in one dispatcher, with the other carrying a comment admitting it
had none because the shell version had none.
Implementations§
Source§impl Scope
impl Scope
pub const ALWAYS: Scope
pub const fn files(files: &'static [&'static str]) -> Scope
pub const fn new( files: &'static [&'static str], opt_in: &'static [&'static str], ) -> Scope
Sourcepub const fn not_during(self, states: &'static [GitState]) -> Scope
pub const fn not_during(self, states: &'static [GitState]) -> Scope
The same scope, silent during these operations.
Sourcepub fn matches(&self, paths: &[String]) -> bool
pub fn matches(&self, paths: &[String]) -> bool
Would this check ever fire, given the paths a repository contains?
Deliberately coarse for checks that resolve an ancestor at run time —
cargo-fmt declares Cargo.toml meaning “somewhere here” while
enforcing “nearest above the staged file”. The dispatcher asks the
precise question by running the check; this answers the dashboard’s
question, “would it ever fire”, where over-approximating is the safe
direction.