pub enum PathPattern {
Exact(Path),
Prefix(Path),
PrefixSuffix(Path, Path),
}Expand description
A pattern over paths, matched component-wise — never byte-wise.
A Prefix pattern for config/gate/accounts matches
config/gate/accounts/personal but not config/gate/accounts_other,
which a naive string starts_with would incorrectly match.
§Examples
use structfs_core_store::{path, PathPattern};
let exact = PathPattern::exact(path!("gate/defaults/model"));
assert!(exact.matches(&path!("gate/defaults/model")));
assert!(!exact.matches(&path!("gate/defaults/model/extra")));
let prefix = PathPattern::prefix(path!("gate/accounts"));
assert!(prefix.matches(&path!("gate/accounts")));
assert!(prefix.matches(&path!("gate/accounts/personal/key")));
assert!(!prefix.matches(&path!("gate/accounts_other")));
// Match `gate/accounts/{anything...}/provider`
let ps = PathPattern::prefix_suffix(path!("gate/accounts"), path!("provider"));
assert!(ps.matches(&path!("gate/accounts/personal/provider")));
assert!(!ps.matches(&path!("gate/accounts/personal/model")));Variants§
Exact(Path)
Matches exactly one path.
Prefix(Path)
Matches the path itself and everything under it.
PrefixSuffix(Path, Path)
Matches paths that start with the prefix and end with the suffix,
with at least the suffix’s components after the prefix. The middle
may be empty: prefix_suffix(a, c) matches a/c and a/b/c.
Implementations§
Source§impl PathPattern
impl PathPattern
Sourcepub fn prefix_suffix(prefix: Path, suffix: Path) -> Self
pub fn prefix_suffix(prefix: Path, suffix: Path) -> Self
Pattern matching paths under prefix that end with suffix.
Trait Implementations§
Source§impl Clone for PathPattern
impl Clone for PathPattern
Source§fn clone(&self) -> PathPattern
fn clone(&self) -> PathPattern
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PathPattern
impl Debug for PathPattern
impl Eq for PathPattern
Source§impl Hash for PathPattern
impl Hash for PathPattern
Source§impl PartialEq for PathPattern
impl PartialEq for PathPattern
impl StructuralPartialEq for PathPattern
Auto Trait Implementations§
impl Freeze for PathPattern
impl RefUnwindSafe for PathPattern
impl Send for PathPattern
impl Sync for PathPattern
impl Unpin for PathPattern
impl UnsafeUnpin for PathPattern
impl UnwindSafe for PathPattern
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
Mutably borrows from an owned value. Read more