pub struct Pattern {
pub text: BString,
pub mode: Mode,
pub first_wildcard_pos: Option<usize>,
}Expand description
A glob pattern optimized for matching paths relative to a root directory.
For normal globbing, use wildmatch() instead.
Fields§
§text: BStringthe actual pattern bytes
mode: ModeAdditional information to help accelerate pattern matching.
first_wildcard_pos: Option<usize>The position in text with the first wildcard character, or None if there is no wildcard at all.
Implementations§
Source§impl Pattern
impl Pattern
Sourcepub fn from_bytes(text: &[u8]) -> Option<Self>
pub fn from_bytes(text: &[u8]) -> Option<Self>
Parse the given text as pattern, or return None if text was empty.
Sourcepub fn is_negative(&self) -> bool
pub fn is_negative(&self) -> bool
Return true if a match is negated.
Sourcepub fn matches_repo_relative_path<'a>(
&self,
path: impl Into<&'a BStr>,
basename_start_pos: Option<usize>,
is_dir: Option<bool>,
case: Case,
) -> bool
pub fn matches_repo_relative_path<'a>( &self, path: impl Into<&'a BStr>, basename_start_pos: Option<usize>, is_dir: Option<bool>, case: Case, ) -> bool
Match the given path which takes slashes (and only slashes) literally, and is relative to the repository root.
Note that path is assumed to be relative to the repository.
We may take various shortcuts which is when basename_start_pos and is_dir come into play.
basename_start_pos is the index at which the path’s basename starts.
Lastly, case folding can be configured as well.