std: Stabilize parts of std::os::platform::io
This commit stabilizes the platform-specific `io` modules, specifically around
the traits having to do with the raw representation of each object on each
platform.
Specifically, the following material was stabilized:
* `AsRaw{Fd,Socket,Handle}`
* `RawFd` (renamed from `Fd`)
* `RawHandle` (renamed from `Handle`)
* `RawSocket` (renamed from `Socket`)
* `AsRaw{Fd,Socket,Handle}` implementations
* `std::os::{unix, windows}::io`
The following material was added as `#[unstable]`:
* `FromRaw{Fd,Socket,Handle}`
* Implementations for various primitives
There are a number of future improvements that are possible to make to this
module, but this should cover a good bit of functionality desired from these
modules for now. Some specific future additions may include:
* `IntoRawXXX` traits to consume the raw representation and cancel the
auto-destructor.
* `Fd`, `Socket`, and `Handle` abstractions that behave like Rust objects and
have nice methods for various syscalls.
At this time though, these are considered backwards-compatible extensions and
will not be stabilized at this time.
This commit is a breaking change due to the addition of `Raw` in from of the
type aliases in each of the platform-specific modules.
[breaking-change]
This commit is contained in:
@@ -16,7 +16,7 @@ use prelude::v1::*;
|
||||
use io::{self, Error, ErrorKind};
|
||||
use net::{ToSocketAddrs, SocketAddr, IpAddr};
|
||||
use sys_common::net2 as net_imp;
|
||||
use sys_common::AsInner;
|
||||
use sys_common::{AsInner, FromInner};
|
||||
|
||||
/// A User Datagram Protocol socket.
|
||||
///
|
||||
@@ -140,6 +140,10 @@ impl AsInner<net_imp::UdpSocket> for UdpSocket {
|
||||
fn as_inner(&self) -> &net_imp::UdpSocket { &self.0 }
|
||||
}
|
||||
|
||||
impl FromInner<net_imp::UdpSocket> for UdpSocket {
|
||||
fn from_inner(inner: net_imp::UdpSocket) -> UdpSocket { UdpSocket(inner) }
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use prelude::v1::*;
|
||||
|
||||
Reference in New Issue
Block a user