diff options
| author | bors <bors@rust-lang.org> | 2014-11-05 18:01:53 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2014-11-05 18:01:53 +0000 |
| commit | 5c1fd5f8b7351085765217b198c6d5a8c0026b74 (patch) | |
| tree | 9cff896e8595a6e8a0089cb72c1a326e7019c3dd /src/rustllvm/RustWrapper.cpp | |
| parent | 14cd5c590e2157f153ed38625011e7fc3c83659c (diff) | |
| parent | 0f610f3c14f25bb51a865d04a42a4cbb62b8815f (diff) | |
| download | rust-5c1fd5f8b7351085765217b198c6d5a8c0026b74.tar.gz rust-5c1fd5f8b7351085765217b198c6d5a8c0026b74.zip | |
auto merge of #18462 : netvl/rust/to-socket-addr, r=alexcrichton
This is a follow-up to [RFC PR #173](https://github.com/rust-lang/rfcs/pull/173). I was told there that changes like this don't need to go through the RFC process, so I'm submitting this directly.
This PR introduces `ToSocketAddr` trait as defined in said RFC. This trait defines a conversion from different types like `&str`, `(&str, u16)` or even `SocketAddr` to `SocketAddr`. Then this trait is used in all constructor methods for `TcpStream`, `TcpListener` and `UdpSocket`.
This unifies these constructor methods - previously they were using different types of input parameters (TCP ones used `(&str, u16)` pair while UDP ones used `SocketAddr`), which is not consistent by itself and sometimes inconvenient - for example, when the address initially is available as `SocketAddr`, you still need to convert it to string to pass it to e.g. `TcpStream`. This is very prominently demonstrated by the unit tests for TCP functionality. This PR makes working with network objects much like with `Path`, which also uses similar trait to be able to be constructed from `&[u8]`, `Vec<u8>` and other `Path`s.
This is a breaking change. If constant literals were used before, like this:
```rust
TcpStream::connect("localhost", 12345)
```
then the nicest fix is to change it to this:
```rust
TcpStream::connect("localhost:12345")
```
If variables were used before, like this:
```rust
TcpStream::connect(some_address, some_port)
```
then the arguments should be wrapped in another set of parentheses:
```rust
TcpStream::connect((some_address, some_port))
```
`UdpSocket` usages won't break because its constructor method accepted `SocketAddr` which implements `ToSocketAddr`, so `bind()` calls:
```rust
UdpSocket::bind(some_socket_addr)
```
will continue working as before.
I haven't changed `UdpStream` constructor because it is deprecated anyway.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
