Skip to main content

SearchRequest

Struct SearchRequest 

Source
pub struct SearchRequest {
Show 13 fields pub pattern: String, pub root: PathBuf, pub mode: MatchMode, pub case: CaseSensitivity, pub include_globs: Vec<String>, pub language_globs: Vec<String>, pub exclude_globs: Vec<String>, pub max_results: usize, pub max_per_file: usize, pub max_file_size: Option<u64>, pub include_hidden: bool, pub respect_ignore_files: bool, pub files_with_matches: bool,
}
Expand description

Configuration for a content search.

Fields§

§pattern: String

The pattern to match.

§root: PathBuf

Root directory (or file) to search.

§mode: MatchMode

How to interpret SearchRequest::pattern.

§case: CaseSensitivity

Whether matching is case-sensitive.

§include_globs: Vec<String>

Only report files whose path matches one of these globs.

Matched case-sensitively, mirroring ripgrep’s --glob.

§language_globs: Vec<String>

Only report files whose path matches one of these globs.

Matched case-insensitively, mirroring ripgrep’s --iglob, which is what the language filters use so *.RS still matches a Rust file.

§exclude_globs: Vec<String>

Never report files whose path matches one of these globs.

§max_results: usize

Maximum number of matches to report.

§max_per_file: usize

Maximum number of matches to report per file.

§max_file_size: Option<u64>

Skip files larger than this many bytes.

§include_hidden: bool

Include files inside hidden directories.

§respect_ignore_files: bool

Honour .gitignore, .ignore, and .git/exclude while walking.

§files_with_matches: bool

Report files that contain a match instead of the matching lines.

Implementations§

Source§

impl SearchRequest

Source

pub fn literal(pattern: impl Into<String>, root: impl Into<PathBuf>) -> Self

Creates a literal, case-sensitive search request.

Source

pub fn regex(pattern: impl Into<String>, root: impl Into<PathBuf>) -> Self

Creates a regex, case-sensitive search request.

Source

pub fn with_case(self, case: CaseSensitivity) -> Self

Sets the case-sensitivity of the search.

Source

pub fn with_max_results(self, max_results: usize) -> Self

Sets the maximum number of matches reported overall.

Source

pub fn with_max_per_file(self, max_per_file: usize) -> Self

Sets the maximum number of matches reported per file.

Source

pub fn with_include_glob(self, glob: impl Into<String>) -> Self

Adds a glob that candidate file paths must match.

The glob is matched case-sensitively, like ripgrep’s --glob.

Source

pub fn with_language_glob(self, glob: impl Into<String>) -> Self

Adds a glob that candidate file paths must match, case-insensitively.

This mirrors ripgrep’s --iglob, which the language filters use so a *.RS file still counts as Rust.

Source

pub fn with_hidden(self) -> Self

Includes hidden files and directories in the walk.

Source

pub fn with_max_file_size(self, max_file_size: u64) -> Self

Sets the maximum size of a file that may be scanned.

Source

pub fn with_files_with_matches(self) -> Self

Reports only the files that contain a match, not the matching lines.

Source

pub fn with_exclude_glob(self, glob: impl Into<String>) -> Self

Excludes files whose path matches glob.

Exclusions are applied after inclusions, so an excluded file never reaches the scanner even when it also matches an include glob.

Source

pub fn without_ignore_files(self) -> Self

Disables ignore-file handling, so every file in the tree is scanned.

Source

pub fn compile(&self) -> Result<Regex, Error>

Compiles the request’s pattern into a matcher.

Returns Err when the pattern is not a valid regular expression. A literal pattern always compiles.

Trait Implementations§

Source§

impl Clone for SearchRequest

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SearchRequest

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more