A utility to get directory.
This utility searches for a target directory by checking for any directories or files that match the provided input.
Install this package as a dependency in the project:
cargo add get_dirGet directory by target with the following code:
use std::path::PathBuf;
use get_dir::{
GetDir,
Target,
DirTarget,
};
let path: PathBuf = GetDir::new()
.target(
Target::Dir(DirTarget::new("src")),
)
.run()
.unwrap();Or get directory by target in reverse with the following code:
use std::path::PathBuf;
use get_dir::{
GetDir,
Target,
FileTarget,
};
let path: PathBuf = GetDir::new()
.target(
Target::File(FileTarget::new("LICENSE")),
)
.run_reverse()
.unwrap();Async version also available with async_std, smol and tokio features:
use std::path::PathBuf;
use get_dir::{
GetDir,
Target,
DirTarget,
// async_std
async_std::GetDirAsyncExt,
// smol
smol::GetDirAsyncExt,
// tokio
tokio::GetDirAsyncExt,
};
let path: PathBuf = GetDir::new()
.target(
Target::Dir(DirTarget::new("src")),
)
.run_async()
.await
.unwrap();For resolving the root of a workspace, consider using the workspace_root library.
For contributing, please refer to the contributing guide.
This project is licensed under the terms of the MIT license.