pub struct Ruleset { /* private fields */ }Expand description
A parsed, validated and compiled set of rules.
Implementations§
Source§impl Ruleset
impl Ruleset
Sourcepub fn builtin() -> Result<Self, RuleError>
pub fn builtin() -> Result<Self, RuleError>
The ruleset compiled into the binary.
§Errors
Only if the compiled-in TOML is malformed, which a unit test in this module rules out.
Sourcepub fn parse(toml: &str) -> Result<Self, RuleError>
pub fn parse(toml: &str) -> Result<Self, RuleError>
Parses a rules file on its own, replacing the built-in set entirely.
§Errors
If the TOML is malformed, a rule is incomplete, or a glob fails to compile.
Sourcepub fn with_overrides(user_toml: &str) -> Result<Self, RuleError>
pub fn with_overrides(user_toml: &str) -> Result<Self, RuleError>
Parses a user rules file and layers it over the built-in set: a rule whose id
already exists replaces the built-in one in place, and a new id is appended.
Replacing in place rather than appending keeps the first-match-wins ordering
predictable — overriding cargo does not quietly move it behind maven.
§Errors
If either file is malformed, a rule is incomplete, or a glob fails to compile.
Sourcepub fn load(user_path: Option<&Path>) -> Result<Self, RuleError>
pub fn load(user_path: Option<&Path>) -> Result<Self, RuleError>
Loads the ruleset, layering the user’s file over the built-in set when it exists.
Passing None looks in the default location, Ruleset::user_config_path. A missing
file is not an error; an unreadable or malformed one is, because silently falling back
to the built-in set would hide the user’s edits from them.
§Errors
If the user file exists but cannot be read or parsed.
Sourcepub fn user_config_path() -> Option<PathBuf>
pub fn user_config_path() -> Option<PathBuf>
The default location of the user’s rules file, $XDG_CONFIG_HOME/pristine/rules.toml
falling back to ~/.config/pristine/rules.toml.
Sourcepub fn excludes(&self) -> &[String]
pub fn excludes(&self) -> &[String]
The paths the user’s file says never to walk, in gitignore syntax.
Empty unless they asked for it. What a cleaner does not look at is a decision only its reader can make, and a shipped list of “system directories” would be a guess about an operating system that changes underneath it.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Ruleset
impl RefUnwindSafe for Ruleset
impl Send for Ruleset
impl Sync for Ruleset
impl Unpin for Ruleset
impl UnsafeUnpin for Ruleset
impl UnwindSafe for Ruleset
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> 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