diff options
| author | bors <bors@rust-lang.org> | 2018-03-08 22:08:21 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2018-03-08 22:08:21 +0000 |
| commit | 604d4ce7577b07b73d115c94fbd8007c1d9c9335 (patch) | |
| tree | 526c8b74176fe716194e4f5c420ca3b8e08e4fcc /src/libstd | |
| parent | c90f68224b069f5bb2a80e30e2737e4bb17c1466 (diff) | |
| parent | 457975369b5cdca62a7708f46f684dfec67b3c67 (diff) | |
Auto merge of #48849 - Manishearth:rollup, r=Manishearth
Rollup of 7 pull requests - Successful merges: #48292, #48682, #48699, #48738, #48752, #48789, #48808 - Failed merges:
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/path.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/libstd/path.rs b/src/libstd/path.rs index cd2af99d6ac..ec961575473 100644 --- a/src/libstd/path.rs +++ b/src/libstd/path.rs @@ -87,6 +87,7 @@ use io; use iter::{self, FusedIterator}; use ops::{self, Deref}; use rc::Rc; +use str::FromStr; use sync::Arc; use ffi::{OsStr, OsString}; @@ -1441,6 +1442,32 @@ impl From<String> for PathBuf { } } +/// Error returned from [`PathBuf::from_str`][`from_str`]. +/// +/// Note that parsing a path will never fail. This error is just a placeholder +/// for implementing `FromStr` for `PathBuf`. +/// +/// [`from_str`]: struct.PathBuf.html#method.from_str +#[derive(Debug, Clone, PartialEq, Eq)] +#[stable(feature = "path_from_str", since = "1.26.0")] +pub enum ParsePathError {} + +#[stable(feature = "path_from_str", since = "1.26.0")] +impl fmt::Display for ParsePathError { + fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result { + match *self {} + } +} + +#[stable(feature = "path_from_str", since = "1.26.0")] +impl FromStr for PathBuf { + type Err = ParsePathError; + + fn from_str(s: &str) -> Result<Self, Self::Err> { + Ok(PathBuf::from(s)) + } +} + #[stable(feature = "rust1", since = "1.0.0")] impl<P: AsRef<Path>> iter::FromIterator<P> for PathBuf { fn from_iter<I: IntoIterator<Item = P>>(iter: I) -> PathBuf { |
