Skip to content

Commit 69a8559

Browse files
committed
uv: Provide a helper fn to Result<(), IoError>
1 parent 97e95d1 commit 69a8559

File tree

2 files changed

+19
-74
lines changed

2 files changed

+19
-74
lines changed

src/librustuv/lib.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -347,16 +347,19 @@ pub fn uv_error_to_io_error(uverr: UvError) -> IoError {
347347
}
348348
}
349349
350-
/// Given a uv handle, convert a callback status to a UvError
351-
pub fn status_to_maybe_uv_error(status: c_int) -> Option<UvError>
352-
{
350+
/// Given a uv error code, convert a callback status to a UvError
351+
pub fn status_to_maybe_uv_error(status: c_int) -> Option<UvError> {
353352
if status >= 0 {
354353
None
355354
} else {
356355
Some(UvError(status))
357356
}
358357
}
359358
359+
pub fn status_to_io_result(status: c_int) -> Result<(), IoError> {
360+
if status >= 0 {Ok(())} else {Err(uv_error_to_io_error(UvError(status)))}
361+
}
362+
360363
/// The uv buffer type
361364
pub type Buf = uvll::uv_buf_t;
362365

src/librustuv/uvio.rs

Lines changed: 13 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -974,11 +974,7 @@ fn accept_simultaneously(stream: StreamWatcher, a: int) -> Result<(), IoError> {
974974
let r = unsafe {
975975
uvll::uv_tcp_simultaneous_accepts(stream.native_handle(), a as c_int)
976976
};
977-
978-
match status_to_maybe_uv_error(r) {
979-
Some(err) => Err(uv_error_to_io_error(err)),
980-
None => Ok(())
981-
}
977+
status_to_io_result(r)
982978
}
983979

984980
impl RtioTcpAcceptor for UvTcpAcceptor {
@@ -1181,11 +1177,7 @@ impl RtioTcpStream for UvTcpStream {
11811177
let r = unsafe {
11821178
uvll::uv_tcp_nodelay(self_.watcher.native_handle(), 0 as c_int)
11831179
};
1184-
1185-
match status_to_maybe_uv_error(r) {
1186-
Some(err) => Err(uv_error_to_io_error(err)),
1187-
None => Ok(())
1188-
}
1180+
status_to_io_result(r)
11891181
}
11901182
}
11911183

@@ -1194,11 +1186,7 @@ impl RtioTcpStream for UvTcpStream {
11941186
let r = unsafe {
11951187
uvll::uv_tcp_nodelay(self_.watcher.native_handle(), 1 as c_int)
11961188
};
1197-
1198-
match status_to_maybe_uv_error(r) {
1199-
Some(err) => Err(uv_error_to_io_error(err)),
1200-
None => Ok(())
1201-
}
1189+
status_to_io_result(r)
12021190
}
12031191
}
12041192

@@ -1208,11 +1196,7 @@ impl RtioTcpStream for UvTcpStream {
12081196
uvll::uv_tcp_keepalive(self_.watcher.native_handle(), 1 as c_int,
12091197
delay_in_seconds as c_uint)
12101198
};
1211-
1212-
match status_to_maybe_uv_error(r) {
1213-
Some(err) => Err(uv_error_to_io_error(err)),
1214-
None => Ok(())
1215-
}
1199+
status_to_io_result(r)
12161200
}
12171201
}
12181202

@@ -1222,11 +1206,7 @@ impl RtioTcpStream for UvTcpStream {
12221206
uvll::uv_tcp_keepalive(self_.watcher.native_handle(),
12231207
0 as c_int, 0 as c_uint)
12241208
};
1225-
1226-
match status_to_maybe_uv_error(r) {
1227-
Some(err) => Err(uv_error_to_io_error(err)),
1228-
None => Ok(())
1229-
}
1209+
status_to_io_result(r)
12301210
}
12311211
}
12321212
}
@@ -1333,11 +1313,7 @@ impl RtioUdpSocket for UvUdpSocket {
13331313
uvll::UV_JOIN_GROUP)
13341314
}
13351315
};
1336-
1337-
match status_to_maybe_uv_error(r) {
1338-
Some(err) => Err(uv_error_to_io_error(err)),
1339-
None => Ok(())
1340-
}
1316+
status_to_io_result(r)
13411317
}
13421318
}
13431319

@@ -1350,100 +1326,66 @@ impl RtioUdpSocket for UvUdpSocket {
13501326
uvll::UV_LEAVE_GROUP)
13511327
}
13521328
};
1353-
1354-
match status_to_maybe_uv_error(r) {
1355-
Some(err) => Err(uv_error_to_io_error(err)),
1356-
None => Ok(())
1357-
}
1329+
status_to_io_result(r)
13581330
}
13591331
}
13601332

13611333
fn loop_multicast_locally(&mut self) -> Result<(), IoError> {
13621334
do self.home_for_io |self_| {
1363-
13641335
let r = unsafe {
13651336
uvll::uv_udp_set_multicast_loop(self_.watcher.native_handle(),
13661337
1 as c_int)
13671338
};
1368-
1369-
match status_to_maybe_uv_error(r) {
1370-
Some(err) => Err(uv_error_to_io_error(err)),
1371-
None => Ok(())
1372-
}
1339+
status_to_io_result(r)
13731340
}
13741341
}
13751342

13761343
fn dont_loop_multicast_locally(&mut self) -> Result<(), IoError> {
13771344
do self.home_for_io |self_| {
1378-
13791345
let r = unsafe {
13801346
uvll::uv_udp_set_multicast_loop(self_.watcher.native_handle(),
13811347
0 as c_int)
13821348
};
1383-
1384-
match status_to_maybe_uv_error(r) {
1385-
Some(err) => Err(uv_error_to_io_error(err)),
1386-
None => Ok(())
1387-
}
1349+
status_to_io_result(r)
13881350
}
13891351
}
13901352

13911353
fn multicast_time_to_live(&mut self, ttl: int) -> Result<(), IoError> {
13921354
do self.home_for_io |self_| {
1393-
13941355
let r = unsafe {
13951356
uvll::uv_udp_set_multicast_ttl(self_.watcher.native_handle(),
13961357
ttl as c_int)
13971358
};
1398-
1399-
match status_to_maybe_uv_error(r) {
1400-
Some(err) => Err(uv_error_to_io_error(err)),
1401-
None => Ok(())
1402-
}
1359+
status_to_io_result(r)
14031360
}
14041361
}
14051362

14061363
fn time_to_live(&mut self, ttl: int) -> Result<(), IoError> {
14071364
do self.home_for_io |self_| {
1408-
14091365
let r = unsafe {
14101366
uvll::uv_udp_set_ttl(self_.watcher.native_handle(), ttl as c_int)
14111367
};
1412-
1413-
match status_to_maybe_uv_error(r) {
1414-
Some(err) => Err(uv_error_to_io_error(err)),
1415-
None => Ok(())
1416-
}
1368+
status_to_io_result(r)
14171369
}
14181370
}
14191371

14201372
fn hear_broadcasts(&mut self) -> Result<(), IoError> {
14211373
do self.home_for_io |self_| {
1422-
14231374
let r = unsafe {
14241375
uvll::uv_udp_set_broadcast(self_.watcher.native_handle(),
14251376
1 as c_int)
14261377
};
1427-
1428-
match status_to_maybe_uv_error(r) {
1429-
Some(err) => Err(uv_error_to_io_error(err)),
1430-
None => Ok(())
1431-
}
1378+
status_to_io_result(r)
14321379
}
14331380
}
14341381

14351382
fn ignore_broadcasts(&mut self) -> Result<(), IoError> {
14361383
do self.home_for_io |self_| {
1437-
14381384
let r = unsafe {
14391385
uvll::uv_udp_set_broadcast(self_.watcher.native_handle(),
14401386
0 as c_int)
14411387
};
1442-
1443-
match status_to_maybe_uv_error(r) {
1444-
Some(err) => Err(uv_error_to_io_error(err)),
1445-
None => Ok(())
1446-
}
1388+
status_to_io_result(r)
14471389
}
14481390
}
14491391
}

0 commit comments

Comments
 (0)