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_dir
Get 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.
This project is licensed under the terms of the MIT license.