Repository: brson/stdx (language: rust)

Issue:
Add walkdir to stdx
See https://github.com/brson/stdx/blob/master/CONTRIBUTING.md for details on how.


Discussion / hints:
The [cookbook](http://github.com/brson/rust-cookbook) has some good walkdir examples already that can be cribbed from. One of the simple ones.

Fix patch:
diff --git a/Cargo.toml b/Cargo.toml
index 77c2c99..8abecf9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -33,6 +33,7 @@ tempdir = "0.3.5"
 tar = "0.4.13"
 toml = "0.4.1"
 url = "1.4.1"
+walkdir = "1.0.7"
 
 # Supplemental dependencies
 env_logger = "0.4.3"
diff --git a/README.md b/README.md
index c98c979..574767c 100644
--- a/README.md
+++ b/README.md
@@ -26,10 +26,11 @@ Current revision: `stdx` 0.118.0-rc, for Rust 1.18, June 8, 2017.
 | HTTP client                    | [`reqwest = "0.6.2"`]      | [📖][d-reqwest]     |
 | Serialization                  | [`serde = "1.0.8"`]        | [📖][d-serde]       |
 | JSON                           | [`serde_json = "1.0.2"`]   | [📖][d-serde_json]  |
-| Tar archives                   | [`tar = "0.4.13"`]         | [📖][d-tar]  |
+| Tar archives                   | [`tar = "0.4.13"`]         | [📖][d-tar]         |
 | Temporary directories          | [`tempdir = "0.3.5"`]      | [📖][d-tempdir]     |
 | Configuration files            | [`toml = "0.4.1"`]         | [📖][d-toml]        |
 | URLs                           | [`url = "1.4.1"`]          | [📖][d-url]         |
+| Walking directories recursively| [`walkdir = "1.0.7"`]      | [📖][d-walkdir]     |
 
 &nbsp;&NewLine;&nbsp;&NewLine;&nbsp;&NewLine;
 
@@ -939,6 +940,34 @@ fn main() {
 &nbsp;&NewLine;&nbsp;&NewLine;&nbsp;&NewLine;
 
 
+<a id="walkdir"></a>
+### `walkdir = "1.0.7"` &emsp; [📖][d-walkdir]
+
+A cross platform Rust library for efficiently walking a directory recursively.
+
+**Example**: [`examples/walkdir.rs`]
+
+```rust
+extern crate walkdir;
+
+use walkdir::{WalkDir, Error};
+
+fn run(wd: WalkDir) -> Result<(), Error> {
+    for entry in wd {
+        let entry = entry?;
+        println!("{}", entry.path().display());
+    }
+    Ok(())
+}
+
+fn main() {
+    run(WalkDir::new(".")).unwrap();
+}
+```
+
+&nbsp;&NewLine;&nbsp;&NewLine;&nbsp;&NewLine;
+
+
 ## About `stdx`
 
 Rust has a lovely and portable standard library, but it is not
@@ -1131,6 +1160,7 @@ copyright is owned by its contributors.
 [`tar = "0.4.13"`]: #tar
 [`toml = "0.4.1"`]: #toml
 [`url = "1.4.1"`]: #url
+[`walkdir = "1.0.7"`]: #walkdir
 
 <!-- stdx crate doc links -->
 
@@ -1156,6 +1186,7 @@ copyright is owned by its contributors.
 [d-tempdir]: https://docs.rs/tempdir/0.3.5/tempdir/
 [d-toml]: https://docs.rs/toml/0.4.1/toml/
 [d-url]: https://docs.rs/url/1.4.1/url/
+[d-walkdir]: https://docs.rs/walkdir/1/walkdir/
 
 <!-- examples -->
 
@@ -1180,6 +1211,7 @@ copyright is owned by its contributors.
 [`examples/tempdir.rs`]: examples/tempdir.rs
 [`examples/toml.rs`]: examples/toml.rs
 [`examples/url.rs`]: examples/url.rs
+[`examples/walkdir.rs`]: examples/walkdir.rs
 
 <!-- Supplemental crates -->
 
diff --git a/examples/walkdir.rs b/examples/walkdir.rs
new file mode 100644
index 0000000..65631b1
--- /dev/null
+++ b/examples/walkdir.rs
@@ -0,0 +1,15 @@
+extern crate walkdir;
+
+use walkdir::{WalkDir, Error};
+
+fn run(wd: WalkDir) -> Result<(), Error> {
+    for entry in wd {
+        let entry = entry?;
+        println!("{}", entry.path().display());
+    }
+    Ok(())
+}
+
+fn main() {
+    run(WalkDir::new(".")).unwrap();
+}


Test patch: