coliru

A minimal, flexible, dotfile installer
git clone https://git.ashermorgan.net/coliru/
Log | Files | Refs | README

commit b3b68147f60106e4829777a33ffbe3101cad8540
parent 4f6bc4eb74c4d095931e0607c8a62dd9458c245c
Author: Asher Morgan <59518073+ashermorgan@users.noreply.github.com>
Date:   Thu, 20 Jun 2024 13:41:29 -0700

Change tag rule group separator from pipe to comma

Comma doesn't need to be escaped like pipe does

Diffstat:
Msrc/tags.rs | 20++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/tags.rs b/src/tags.rs @@ -1,14 +1,14 @@ /// Checks if a list of tags matches a list of tag rules /// /// Rules and tags are both specified as strings. Each rule contains one or more -/// desired tags separated by `|`. A list of tags matches a list of rules if +/// desired tags separated by `,`. A list of tags matches a list of rules if /// each rule contains at least one tag that appears in the list of tags. The /// results of rules prefixed with `^` will be negated. Any list of tags will /// match an empty list of tag rules. An empty list of tags will only match an /// empty list of tag rules. /// /// ``` -/// let rules = ["linux|macos", "system", "^work"]; +/// let rules = ["linux,macos", "system", "^work"]; /// let tags_1 = ["macos", "system", "user"]; /// let tags_2 = ["linux", "system", "work"]; /// assert_eq!(tags_match(&rules, &tags_1), true); @@ -22,7 +22,7 @@ pub fn tags_match<S: AsRef<str>>(rules: &[S], tags: &[S]) -> bool { _rule = &_rule[1..]; // Strip leading '^' } - let tag_found = _rule.split("|").any(|subrule| { + let tag_found = _rule.split(",").any(|subrule| { tags.iter().any(|tag| { tag.as_ref() == subrule }) @@ -106,7 +106,7 @@ mod tests { #[test] fn tags_match_union() { - let rules = ["linux|macos"]; + let rules = ["linux,macos"]; let tags_1 = ["linux"]; let tags_2 = ["macos"]; let tags_3 = ["linux", "macos"]; @@ -120,8 +120,8 @@ mod tests { #[test] fn tags_match_union_two_rules() { - let rules_1 = ["linux|macos", "user|system"]; - let rules_2 = ["linux|macos", "user"]; + let rules_1 = ["linux,macos", "user,system"]; + let rules_2 = ["linux,macos", "user"]; let tags_1 = ["user", "linux"]; let tags_2 = ["system", "macos"]; let tags_3 = ["user", "linux", "macos"]; @@ -139,7 +139,7 @@ mod tests { #[test] fn tags_match_union_negated() { - let rules = ["^linux|macos"]; + let rules = ["^linux,macos"]; let tags_1 = ["linux"]; let tags_2 = ["macos"]; let tags_3 = ["linux", "macos"]; @@ -153,9 +153,9 @@ mod tests { #[test] fn tags_match_union_negated_two_rules() { - let rules_1 = ["^linux|macos", "^user"]; - let rules_2 = ["^linux|macos", "user|system"]; - let rules_3 = ["^linux|macos", "user"]; + let rules_1 = ["^linux,macos", "^user"]; + let rules_2 = ["^linux,macos", "user,system"]; + let rules_3 = ["^linux,macos", "user"]; let tags_1 = ["linux", "macos", "system"]; let tags_2 = ["windows", "user"]; let tags_3 = ["windows", "system"];