pub struct RuleSpec {
pub id: String,
pub kind: String,
pub level: Level,
pub paths: Option<PathsSpec>,
pub message: Option<String>,
pub policy_url: Option<String>,
pub when: Option<String>,
pub fix: Option<FixSpec>,
pub git_tracked_only: bool,
pub extra: Mapping,
}Expand description
YAML-level description of a rule before it is instantiated into a Box<dyn Rule>
by a RuleBuilder.
Fields§
§id: String§kind: String§level: Level§paths: Option<PathsSpec>§message: Option<String>§policy_url: Option<String>§when: Option<String>§fix: Option<FixSpec>Optional mechanical-fix strategy. Rules whose builders understand
the chosen op attach a Fixer to the built rule;
rules whose kind is incompatible with the op return a config error
at build time.
git_tracked_only: boolRestrict the rule to files / directories tracked in git’s index.
When true, the rule’s paths-matched entries are intersected
with the set of git-tracked files; entries that exist in the
walked tree but aren’t in git ls-files output are skipped.
Only meaningful for rule kinds that opt in (currently the
existence family — file_exists, file_absent, dir_exists,
dir_absent); rule kinds that don’t support it surface a clean
config error when this is true so silent mis-configuration
doesn’t slip through.
Default false. Has no effect outside a git repo.
extra: MappingThe entire YAML mapping, retained so each rule builder can deserialize its kind-specific fields without every option being represented here.
Implementations§
Source§impl RuleSpec
impl RuleSpec
Sourcepub fn deserialize_options<T>(&self) -> Result<T>where
T: DeserializeOwned,
pub fn deserialize_options<T>(&self) -> Result<T>where
T: DeserializeOwned,
Deserialize the full spec (common + kind-specific fields) into a typed
options struct. Common fields are reconstructed into the mapping so
the target struct can #[derive(Deserialize)] against the whole shape
when convenient.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for RuleSpec
impl<'de> Deserialize<'de> for RuleSpec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for RuleSpec
impl RefUnwindSafe for RuleSpec
impl Send for RuleSpec
impl Sync for RuleSpec
impl Unpin for RuleSpec
impl UnsafeUnpin for RuleSpec
impl UnwindSafe for RuleSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more