From b61fddebb09f33c52cf97f66c797f8d5401096ec Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Sun, 23 Aug 2015 23:00:18 -0700 Subject: [PATCH 1/2] Implement Error for AddrParseError Closes #27973 --- src/libstd/net/parser.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/libstd/net/parser.rs b/src/libstd/net/parser.rs index b0fadb56f36ac..da6ee8cfdcfb3 100644 --- a/src/libstd/net/parser.rs +++ b/src/libstd/net/parser.rs @@ -15,8 +15,10 @@ use prelude::v1::*; -use str::FromStr; +use error::Error; +use fmt; use net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6}; +use str::FromStr; struct Parser<'a> { // parsing as ASCII, so can use byte array @@ -339,3 +341,15 @@ impl FromStr for SocketAddr { #[stable(feature = "rust1", since = "1.0.0")] #[derive(Debug, Clone, PartialEq)] pub struct AddrParseError(()); + +impl fmt::Display for AddrParseError { + fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { + fmt.write_str(self.description()) + } +} + +impl Error for AddrParseError { + fn description(&self) -> &str { + "invalid IP address syntax" + } +} From f266f12f3066c02cfef6116202e624443f919dff Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Mon, 24 Aug 2015 08:59:45 -0700 Subject: [PATCH 2/2] Add stability markers for new impls --- src/libstd/net/parser.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libstd/net/parser.rs b/src/libstd/net/parser.rs index da6ee8cfdcfb3..480fd63c36a85 100644 --- a/src/libstd/net/parser.rs +++ b/src/libstd/net/parser.rs @@ -342,12 +342,14 @@ impl FromStr for SocketAddr { #[derive(Debug, Clone, PartialEq)] pub struct AddrParseError(()); +#[stable(feature = "addr_parse_error_error", since = "1.4.0")] impl fmt::Display for AddrParseError { fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { fmt.write_str(self.description()) } } +#[stable(feature = "addr_parse_error_error", since = "1.4.0")] impl Error for AddrParseError { fn description(&self) -> &str { "invalid IP address syntax"