File tree Expand file tree Collapse file tree 2 files changed +18
-0
lines changed Expand file tree Collapse file tree 2 files changed +18
-0
lines changed Original file line number Diff line number Diff line change 5252//! path.push("system32");
5353//!
5454//! path.set_extension("dll");
55+ //!
56+ //! // ... but push is best used if you don't know everything up
57+ //! // front. If you do, this way is better:
58+ //! let path: PathBuf = ["c:\\", "windows", "system32.dll"].iter().collect();
5559//! ```
5660//!
5761//! [`Component`]: enum.Component.html
Original file line number Diff line number Diff line change @@ -280,3 +280,17 @@ impl<'b, P: AsRef<Path> + 'b> FromStream<P> for PathBuf {
280280 } )
281281 }
282282}
283+
284+ impl < P : AsRef < Path > > std:: iter:: FromIterator < P > for PathBuf {
285+ fn from_iter < I : IntoIterator < Item = P > > ( iter : I ) -> PathBuf {
286+ let mut buf = PathBuf :: new ( ) ;
287+ buf. extend ( iter) ;
288+ buf
289+ }
290+ }
291+
292+ impl < P : AsRef < Path > > std:: iter:: Extend < P > for PathBuf {
293+ fn extend < I : IntoIterator < Item = P > > ( & mut self , iter : I ) {
294+ iter. into_iter ( ) . for_each ( move |p| self . push ( p. as_ref ( ) ) ) ;
295+ }
296+ }
You can’t perform that action at this time.
0 commit comments