pub struct WhichConfig<TSys: Sys, F = Noop> { /* private fields */ }
Expand description
A wrapper containing all functionality in this crate.
Implementations§
Source§impl<TSys: Sys> WhichConfig<TSys, Noop>
impl<TSys: Sys> WhichConfig<TSys, Noop>
Sourcepub fn new_with_sys(sys: TSys) -> Self
pub fn new_with_sys(sys: TSys) -> Self
Creates a new WhichConfig
with the given sys::Sys
.
This is useful for providing all the system related functionality to this crate.
Source§impl<'a, TSys: Sys + 'a, F: NonFatalErrorHandler + 'a> WhichConfig<TSys, F>
impl<'a, TSys: Sys + 'a, F: NonFatalErrorHandler + 'a> WhichConfig<TSys, 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<TSys, NewF>
pub fn nonfatal_error_handler<NewF>( self, handler: NewF, ) -> WhichConfig<TSys, 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.