pub struct WhichConfig<F = Noop> { /* private fields */ }
Expand description
A wrapper containing all functionality in this crate.
Implementations§
Source§impl<'a, F: NonFatalErrorHandler + 'a> WhichConfig<F>
impl<'a, F: NonFatalErrorHandler + 'a> WhichConfig<F>
Sourcepub fn system_cwd(self, use_cwd: bool) -> Self
pub fn system_cwd(self, use_cwd: bool) -> Self
Whether or not to use the current working directory. true
by default.
§Panics
If regex was set previously, and you’ve just passed in use_cwd: true
, this will panic.
Sourcepub fn custom_cwd(self, cwd: PathBuf) -> Self
pub fn custom_cwd(self, cwd: PathBuf) -> Self
Sets a custom path for resolving relative paths.
§Panics
If regex was set previously, this will panic.
Sourcepub fn regex(self, regex: ()) -> Self
pub fn regex(self, regex: ()) -> Self
Sets the path name regex to search for. You MUST call this, or Self::binary_name
prior to searching.
When Regex
is disabled this function takes the unit type as a stand in. The parameter will change when
Regex
is enabled.
§Panics
If the regex
feature wasn’t turned on for this crate this will always panic. Additionally if a
cwd
(aka current working directory) or binary_name
was set previously, this will panic, as those options
are incompatible with regex
.
Sourcepub fn binary_name(self, name: OsString) -> Self
pub fn binary_name(self, name: OsString) -> Self
Sets the path name to search for. You MUST call this, or Self::regex
prior to searching.
§Panics
If a regex
was set previously this will panic as this is not compatible with regex
.
Sourcepub fn custom_path_list(self, custom_path_list: OsString) -> Self
pub fn custom_path_list(self, custom_path_list: OsString) -> Self
Uses the given string instead of the PATH
env variable.
Sourcepub fn system_path_list(self) -> Self
pub fn system_path_list(self) -> Self
Uses the PATH
env variable. Enabled by default.
Sourcepub fn nonfatal_error_handler<NewF>(self, handler: NewF) -> WhichConfig<NewF>
pub fn nonfatal_error_handler<NewF>(self, handler: NewF) -> WhichConfig<NewF>
Sets a closure that will receive non-fatal errors. You can also pass in other types
that implement NonFatalErrorHandler
.
§Example
let mut nonfatal_errors = Vec::new();
WhichConfig::new()
.binary_name("tar".into())
.nonfatal_error_handler(|e| nonfatal_errors.push(e))
.all_results()
.unwrap()
.collect::<Vec<_>>();
if !nonfatal_errors.is_empty() {
println!("nonfatal errors encountered: {nonfatal_errors:?}");
}
You could also log it if you choose
WhichConfig::new()
.binary_name("tar".into())
.nonfatal_error_handler(|e| eprintln!("{e}"))
.all_results()
.unwrap()
.collect::<Vec<_>>();
Sourcepub fn first_result(self) -> Result<PathBuf>
pub fn first_result(self) -> Result<PathBuf>
Finishes configuring, runs the query and returns the first result.
Sourcepub fn all_results(self) -> Result<impl Iterator<Item = PathBuf> + 'a>
pub fn all_results(self) -> Result<impl Iterator<Item = PathBuf> + 'a>
Finishes configuring, runs the query and returns all results.
Trait Implementations§
Auto Trait Implementations§
impl<F> Freeze for WhichConfig<F>where
F: Freeze,
impl<F> RefUnwindSafe for WhichConfig<F>where
F: RefUnwindSafe,
impl<F> Send for WhichConfig<F>where
F: Send,
impl<F> Sync for WhichConfig<F>where
F: Sync,
impl<F> Unpin for WhichConfig<F>where
F: Unpin,
impl<F> UnwindSafe for WhichConfig<F>where
F: UnwindSafe,
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more