Lines Matching defs:new
110 /// `glob_with(pattern, MatchOptions::new())`. Use `glob_with` directly if you
161 glob_with(pattern, MatchOptions::new())
171 /// `Pattern::new(..)`. The options given are passed through unchanged to
201 if let Err(err) = Pattern::new(pattern) {
205 let mut components = Path::new(pattern).components().peekable();
215 let normalized_pattern = Path::new(pattern).iter().collect::<PathBuf>();
218 Some(Path::new(&pattern[..root_len]))
228 dir_patterns: Vec::new(),
231 todo: Vec::new(),
238 let mut dir_patterns = Vec::new();
243 dir_patterns.push(Pattern::new(component)?);
249 tokens: Vec::new(),
256 let todo = Vec::new();
509 Self::new(s)
545 pub fn new(pattern: &str) -> Result<Self, PatternError> {
547 let mut tokens = Vec::new();
662 let mut escaped = String::new();
681 /// match options (i.e. `MatchOptions::new()`).
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"));
693 self.matches_with(str, MatchOptions::new())
697 /// `Pattern` using the default match options (i.e. `MatchOptions::new()`).
820 let mut s = String::new();
844 let curdir = path == Path::new(".");
908 let mut cs = Vec::new();
995 /// Constructs a new `MatchOptions` with default field values. This is used
1013 pub fn new() -> Self {
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);
1077 assert!(err.path() == Path::new("/root"));
1103 let path = Path::new(prefix_component.as_os_str());
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();
1216 ..MatchOptions::new()
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();
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);
1424 // on windows, (Path::new("a/b").as_str().unwrap() == "a\\b"), so this
1426 assert!(Pattern::new("a/b").unwrap().matches_path(&Path::new("a/b")));
1431 let pattern = Path::new("one").join(&Path::new("**/*.rs"));
1432 assert!(Pattern::new(pattern.to_str().unwrap()).is_ok());