bytecodealliance / bytecodealliance/cap-std
Create directory if not exists, and return `Dir`
- Dominant language
- Rust
- Stars
- 821
- Forks
- 57
- Avg merge
- 1h 16m
- Merged PRs (30d)
- 4
Description
Is there a simple way to create a directory if it does not yet exist and to return the `Dir`?
Something along the lines of:
```rs
async fn create_dir(parent: &Dir, path: &str) -> anyhow::Result {
match parent.create_dir(path) {
Ok(_) => {}
Err(e) => match e.kind() {
std::io::ErrorKind::AlreadyExists => {}
_ => {
Err(e)?;
}
},
}
Ok(parent.open_dir(path).await?) // could maybe be a TOCTOU?
}
```
I couldn't find a `create_dir_with` that would allow specifying e.g. `OpenOptions`, and all the create_dir functions don't return the `Dir` itself.
If not, would the project be open to contributions on this?
Contributor guide
Research direction
Start by reviewing the existing `Dir::create_dir`, `Dir::open_dir`, and related create-directory APIs. Check how the project handles `OpenOptions`, existing directories, and possible TOCTOU concerns. Done should be a reviewed API that creates or opens the directory, supports the requested options, and returns `Dir` with appropriate tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- operating-systems, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100