Lines Matching defs:Pattern
15 //! The methods on the `Pattern` type provide functionality for checking if
96 dir_patterns: Vec<Pattern>,
171 /// `Pattern::new(..)`. The options given are passed through unchanged to
172 /// `Pattern::matches_with(..)` with the exception that
201 if let Err(err) = Pattern::new(pattern) {
243 dir_patterns.push(Pattern::new(component)?);
247 dir_patterns.push(Pattern {
335 // iterator (i.e. glob()) only fails if it fails to compile the Pattern
460 "Pattern syntax error near position {}: {}",
492 pub struct Pattern {
499 impl fmt::Display for Pattern {
505 impl FromStr for Pattern {
541 impl Pattern {
659 /// brackets. The resulting string will, when compiled into a `Pattern`,
680 /// Return if the given `str` matches this `Pattern` using the default
686 /// use glob::Pattern;
688 /// assert!(Pattern::new("c?t").unwrap().matches("cat"));
689 /// assert!(Pattern::new("k[!e]tteh").unwrap().matches("kitteh"));
690 /// assert!(Pattern::new("d*g").unwrap().matches("doog"));
697 /// `Pattern` using the default match options (i.e. `MatchOptions::new()`).
703 /// Return if the given `str` matches this `Pattern` using the specified
710 /// `Pattern` using the specified match options.
813 patterns: &[Pattern],
819 fn pattern_as_str(pattern: &Pattern) -> Option<String> {
971 /// Configuration options to modify the behaviour of `Pattern::matches_with(..)`.
1024 use super::{glob, MatchOptions, Pattern};
1029 assert!("a*b".parse::<Pattern>().unwrap().matches("a_b"));
1030 assert!("a/**b".parse::<Pattern>().unwrap_err().pos == 4);
1035 assert!(Pattern::new("a/**b").unwrap_err().pos == 4);
1036 assert!(Pattern::new("a/bc**").unwrap_err().pos == 3);
1037 assert!(Pattern::new("a/*****").unwrap_err().pos == 4);
1038 assert!(Pattern::new("a/b**c**d").unwrap_err().pos == 2);
1039 assert!(Pattern::new("a**b").unwrap_err().pos == 0);
1044 assert!(Pattern::new("abc[def").unwrap_err().pos == 3);
1045 assert!(Pattern::new("abc[!def").unwrap_err().pos == 3);
1046 assert!(Pattern::new("abc[").unwrap_err().pos == 3);
1047 assert!(Pattern::new("abc[!").unwrap_err().pos == 3);
1048 assert!(Pattern::new("abc[d").unwrap_err().pos == 3);
1049 assert!(Pattern::new("abc[!d").unwrap_err().pos == 3);
1050 assert!(Pattern::new("abc[]").unwrap_err().pos == 3);
1051 assert!(Pattern::new("abc[!]").unwrap_err().pos == 3);
1122 assert!(Pattern::new("a*b").unwrap().matches("a_b"));
1123 assert!(Pattern::new("a*b*c").unwrap().matches("abc"));
1124 assert!(!Pattern::new("a*b*c").unwrap().matches("abcd"));
1125 assert!(Pattern::new("a*b*c").unwrap().matches("a_b_c"));
1126 assert!(Pattern::new("a*b*c").unwrap().matches("a___b___c"));
1127 assert!(Pattern::new("abc*abc*abc")
1130 assert!(!Pattern::new("abc*abc*abc")
1133 assert!(Pattern::new("a*a*a*a*a*a*a*a*a")
1136 assert!(Pattern::new("a*b[xyz]c*d").unwrap().matches("abxcdbxcddd"));
1141 let pat = Pattern::new("some/**/needle.txt").unwrap();
1150 let pat = Pattern::new("**").unwrap();
1158 let pat = Pattern::new("some/**/**/needle.txt").unwrap();
1166 let pat = Pattern::new("**/test").unwrap();
1172 let pat = Pattern::new("/**/test").unwrap();
1180 let pat = Pattern::new("**/.*").unwrap();
1195 let pat = Pattern::new("a[0-9]b").unwrap();
1201 let pat = Pattern::new("a[!0-9]b").unwrap();
1209 let pat = Pattern::new(p).unwrap();
1227 let pat = Pattern::new(p).unwrap();
1235 let pat = Pattern::new("[2-1]").unwrap();
1239 assert!(Pattern::new("[-]").unwrap().matches("-"));
1240 assert!(!Pattern::new("[!-]").unwrap().matches("-"));
1245 let txt_pat = Pattern::new("*hello.txt").unwrap();
1254 let dir_pat = Pattern::new("*some/path/to/hello.txt").unwrap();
1264 assert_eq!(Pattern::escape(s), "_[[]_[]]_[?]_[*]_!_".to_string());
1265 assert!(Pattern::new(&Pattern::escape(s)).unwrap().matches(s));
1270 let pat = Pattern::new("aBcDeFg").unwrap();
1285 let pat_within = Pattern::new("[a]").unwrap();
1286 let pat_except = Pattern::new("[!a]").unwrap();
1321 assert!(Pattern::new("abc/def")
1324 assert!(!Pattern::new("abc?def")
1327 assert!(!Pattern::new("abc*def")
1330 assert!(!Pattern::new("abc[/]def")
1334 assert!(Pattern::new("abc/def")
1337 assert!(Pattern::new("abc?def")
1340 assert!(Pattern::new("abc*def")
1343 assert!(Pattern::new("abc[/]def")
1362 Pattern::new("*.txt")
1370 Pattern::new(".*.*")
1378 Pattern::new("aaa/bbb/*")
1386 Pattern::new("aaa/bbb/*")
1394 Pattern::new("aaa/bbb/.*")
1402 Pattern::new("aaa/?bbb")
1410 Pattern::new("aaa/[.]bbb")
1417 let f = |options| Pattern::new("**/*").unwrap().matches_with(".bbb", options);
1426 assert!(Pattern::new("a/b").unwrap().matches_path(&Path::new("a/b")));
1432 assert!(Pattern::new(pattern.to_str().unwrap()).is_ok());