std: Stabilize last bits of io::Error
This commit stabilizes a few remaining bits of the `io::Error` type: * The `Error::new` method is now stable. The last `detail` parameter was removed and the second `desc` parameter was generalized to `E: Into<Box<Error>>` to allow creating an I/O error from any form of error. Currently there is no form of downcasting, but this will be added in time. * An implementation of `From<&str> for Box<Error>` was added to liballoc to allow construction of errors from raw strings. * The `Error::raw_os_error` method was stabilized as-is. * Trait impls for `Clone`, `Eq`, and `PartialEq` were removed from `Error` as it is not possible to use them with trait objects. This is a breaking change due to the modification of the `new` method as well as the removal of the trait implementations for the `Error` type. [breaking-change]
This commit is contained in:
@@ -75,7 +75,7 @@ fn sockaddr_to_addr(storage: &libc::sockaddr_storage,
|
||||
})))
|
||||
}
|
||||
_ => {
|
||||
Err(Error::new(ErrorKind::InvalidInput, "invalid argument", None))
|
||||
Err(Error::new(ErrorKind::InvalidInput, "invalid argument"))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -158,8 +158,7 @@ pub fn lookup_addr(addr: &IpAddr) -> io::Result<String> {
|
||||
match from_utf8(data.to_bytes()) {
|
||||
Ok(name) => Ok(name.to_string()),
|
||||
Err(_) => Err(io::Error::new(io::ErrorKind::Other,
|
||||
"failed to lookup address information",
|
||||
Some("invalid host name".to_string())))
|
||||
"failed to lookup address information"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,8 @@ pub fn cvt_gai(err: c_int) -> io::Result<()> {
|
||||
.to_string()
|
||||
};
|
||||
Err(io::Error::new(io::ErrorKind::Other,
|
||||
"failed to lookup address information", Some(detail)))
|
||||
&format!("failed to lookup address information: {}",
|
||||
detail)[..]))
|
||||
}
|
||||
|
||||
impl Socket {
|
||||
|
||||
Reference in New Issue
Block a user