1b3ba51a1Sopenharmony_ci[![Build Status](https://github.com/harryfei/which-rs/actions/workflows/rust.yml/badge.svg)](https://github.com/harryfei/which-rs/actions/workflows/rust.yml)
2b3ba51a1Sopenharmony_ci
3b3ba51a1Sopenharmony_ci# which
4b3ba51a1Sopenharmony_ci
5b3ba51a1Sopenharmony_ciA Rust equivalent of Unix command "which". Locate installed executable in cross platforms.
6b3ba51a1Sopenharmony_ci
7b3ba51a1Sopenharmony_ci## Support platforms
8b3ba51a1Sopenharmony_ci
9b3ba51a1Sopenharmony_ci* Linux
10b3ba51a1Sopenharmony_ci* Windows
11b3ba51a1Sopenharmony_ci* macOS
12b3ba51a1Sopenharmony_ci
13b3ba51a1Sopenharmony_ci## Examples
14b3ba51a1Sopenharmony_ci
15b3ba51a1Sopenharmony_ci1) To find which rustc executable binary is using.
16b3ba51a1Sopenharmony_ci
17b3ba51a1Sopenharmony_ci    ``` rust
18b3ba51a1Sopenharmony_ci    use which::which;
19b3ba51a1Sopenharmony_ci
20b3ba51a1Sopenharmony_ci    let result = which("rustc").unwrap();
21b3ba51a1Sopenharmony_ci    assert_eq!(result, PathBuf::from("/usr/bin/rustc"));
22b3ba51a1Sopenharmony_ci    ```
23b3ba51a1Sopenharmony_ci
24b3ba51a1Sopenharmony_ci2. After enabling the `regex` feature, find all cargo subcommand executables on the path:
25b3ba51a1Sopenharmony_ci
26b3ba51a1Sopenharmony_ci    ``` rust
27b3ba51a1Sopenharmony_ci    use which::which_re;
28b3ba51a1Sopenharmony_ci
29b3ba51a1Sopenharmony_ci    which_re(Regex::new("^cargo-.*").unwrap()).unwrap()
30b3ba51a1Sopenharmony_ci        .for_each(|pth| println!("{}", pth.to_string_lossy()));
31b3ba51a1Sopenharmony_ci    ```
32b3ba51a1Sopenharmony_ci
33b3ba51a1Sopenharmony_ci## Documentation
34b3ba51a1Sopenharmony_ci
35b3ba51a1Sopenharmony_ciThe documentation is [available online](https://docs.rs/which/).
36