Skip to content

Instantly share code, notes, and snippets.

@behnam
Created July 7, 2017 22:07
Show Gist options
  • Save behnam/6c46d6e62bfc4be730d4c761da3a204d to your computer and use it in GitHub Desktop.
Save behnam/6c46d6e62bfc4be730d4c761da3a204d to your computer and use it in GitHub Desktop.
glob vs globset
extern crate glob;
extern crate globset;
fn main() {
println!("\n## This is globset!");
let glob = globset::Glob::new("*.rs").unwrap().compile_matcher();
assert!(glob.is_match("foo.rs"));
assert!(glob.is_match("foo/bar.rs"));
assert!(glob.is_match("foo/foo2/bar.rs"));
assert!(glob.is_match("foo/foo2/foo3/bar.rs"));
let glob = globset::Glob::new("/foo").unwrap().compile_matcher();
assert!(!glob.is_match("foo.rs"));
assert!(!glob.is_match("foo/bar.rs")); // XXX
assert!(!glob.is_match("foo/foo2/bar.rs")); // XXX
assert!(!glob.is_match("foo/foo2/foo3/bar.rs")); // XXX
let glob = globset::Glob::new("foo").unwrap().compile_matcher();
assert!(!glob.is_match("foo.rs"));
assert!(!glob.is_match("foo/bar.rs")); // XXX
assert!(!glob.is_match("foo/foo2/bar.rs")); // XXX
assert!(!glob.is_match("foo/foo2/foo3/bar.rs")); // XXX
let glob = globset::Glob::new("foo/").unwrap().compile_matcher();
assert!(!glob.is_match("foo.rs"));
assert!(!glob.is_match("foo/bar.rs")); // XXX
assert!(!glob.is_match("foo/foo2/bar.rs")); // XXX
assert!(!glob.is_match("foo/foo2/foo3/bar.rs")); // XXX
let glob = globset::Glob::new("foo/*").unwrap().compile_matcher();
assert!(!glob.is_match("foo.rs"));
assert!(glob.is_match("foo/bar.rs"));
assert!(glob.is_match("foo/foo2/bar.rs"));
assert!(glob.is_match("foo/foo2/foo3/bar.rs"));
let glob = globset::Glob::new("foo/**").unwrap().compile_matcher();
assert!(!glob.is_match("foo.rs"));
assert!(glob.is_match("foo/bar.rs"));
assert!(glob.is_match("foo/foo2/bar.rs"));
assert!(glob.is_match("foo/foo2/foo3/bar.rs"));
println!("\n## This is glob!");
let glob = glob::Pattern::new("*.rs").unwrap();
assert!(glob.matches("foo.rs"));
assert!(glob.matches("foo/bar.rs"));
assert!(glob.matches("foo/foo2/bar.rs"));
assert!(glob.matches("foo/foo2/foo3/bar.rs"));
let glob = glob::Pattern::new("/foo").unwrap();
assert!(!glob.matches("foo.rs"));
assert!(!glob.matches("foo/bar.rs")); // XXX
assert!(!glob.matches("foo/foo2/bar.rs")); // XXX
assert!(!glob.matches("foo/foo2/foo3/bar.rs")); // XXX
let glob = glob::Pattern::new("foo").unwrap();
assert!(!glob.matches("foo.rs"));
assert!(!glob.matches("foo/bar.rs")); // XXX
assert!(!glob.matches("foo/foo2/bar.rs")); // XXX
assert!(!glob.matches("foo/foo2/foo3/bar.rs")); // XXX
let glob = glob::Pattern::new("foo/").unwrap();
assert!(!glob.matches("foo.rs"));
assert!(!glob.matches("foo/bar.rs")); // XXX
assert!(!glob.matches("foo/foo2/bar.rs")); // XXX
assert!(!glob.matches("foo/foo2/foo3/bar.rs")); // XXX
let glob = glob::Pattern::new("foo/*").unwrap();
assert!(!glob.matches("foo.rs"));
assert!(glob.matches("foo/bar.rs"));
assert!(glob.matches("foo/foo2/bar.rs"));
assert!(glob.matches("foo/foo2/foo3/bar.rs"));
let glob = glob::Pattern::new("foo/**").unwrap();
assert!(!glob.matches("foo.rs"));
assert!(glob.matches("foo/bar.rs"));
assert!(glob.matches("foo/foo2/bar.rs"));
assert!(glob.matches("foo/foo2/foo3/bar.rs"));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment