Skip to content

Commit 4bcde6b

Browse files
committed
uv: Provide a helper fn to Result<(), IoError>
1 parent 30c885e commit 4bcde6b

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
@@ -341,16 +341,19 @@ pub fn uv_error_to_io_error(uverr: UvError) -> IoError {
341341
}
342342
}
343343
344-
/// Given a uv handle, convert a callback status to a UvError
345-
pub fn status_to_maybe_uv_error(status: c_int) -> Option<UvError>
346-
{
344+
/// Given a uv error code, convert a callback status to a UvError
345+
pub fn status_to_maybe_uv_error(status: c_int) -> Option<UvError> {
347346
if status >= 0 {
348347
None
349348
} else {
350349
Some(UvError(status))
351350
}
352351
}
353352
353+
pub fn status_to_io_result(status: c_int) -> Result<(), IoError> {
354+
if status >= 0 {Ok(())} else {Err(uv_error_to_io_error(UvError(status)))}
355+
}
356+
354357
/// The uv buffer type
355358
pub type Buf = uvll::uv_buf_t;
356359

src/librustuv/uvio.rs

Lines changed: 13 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -992,11 +992,7 @@ fn accept_simultaneously(stream: StreamWatcher, a: int) -> Result<(), IoError> {
992992
let r = unsafe {
993993
uvll::uv_tcp_simultaneous_accepts(stream.native_handle(), a as c_int)
994994
};
995-
996-
match status_to_maybe_uv_error(r) {
997-
Some(err) => Err(uv_error_to_io_error(err)),
998-
None => Ok(())
999-
}
995+
status_to_io_result(r)
1000996
}
1001997

1002998
impl RtioTcpAcceptor for UvTcpAcceptor {
@@ -1197,11 +1193,7 @@ impl RtioTcpStream for UvTcpStream {
11971193
let r = unsafe {
11981194
uvll::uv_tcp_nodelay(self_.watcher.native_handle(), 0 as c_int)
11991195
};
1200-
1201-
match status_to_maybe_uv_error(r) {
1202-
Some(err) => Err(uv_error_to_io_error(err)),
1203-
None => Ok(())
1204-
}
1196+
status_to_io_result(r)
12051197
}
12061198
}
12071199

@@ -1210,11 +1202,7 @@ impl RtioTcpStream for UvTcpStream {
12101202
let r = unsafe {
12111203
uvll::uv_tcp_nodelay(self_.watcher.native_handle(), 1 as c_int)
12121204
};
1213-
1214-
match status_to_maybe_uv_error(r) {
1215-
Some(err) => Err(uv_error_to_io_error(err)),
1216-
None => Ok(())
1217-
}
1205+
status_to_io_result(r)
12181206
}
12191207
}
12201208

@@ -1224,11 +1212,7 @@ impl RtioTcpStream for UvTcpStream {
12241212
uvll::uv_tcp_keepalive(self_.watcher.native_handle(), 1 as c_int,
12251213
delay_in_seconds as c_uint)
12261214
};
1227-
1228-
match status_to_maybe_uv_error(r) {
1229-
Some(err) => Err(uv_error_to_io_error(err)),
1230-
None => Ok(())
1231-
}
1215+
status_to_io_result(r)
12321216
}
12331217
}
12341218

@@ -1238,11 +1222,7 @@ impl RtioTcpStream for UvTcpStream {
12381222
uvll::uv_tcp_keepalive(self_.watcher.native_handle(),
12391223
0 as c_int, 0 as c_uint)
12401224
};
1241-
1242-
match status_to_maybe_uv_error(r) {
1243-
Some(err) => Err(uv_error_to_io_error(err)),
1244-
None => Ok(())
1245-
}
1225+
status_to_io_result(r)
12461226
}
12471227
}
12481228
}
@@ -1348,11 +1328,7 @@ impl RtioUdpSocket for UvUdpSocket {
13481328
uvll::UV_JOIN_GROUP)
13491329
}
13501330
};
1351-
1352-
match status_to_maybe_uv_error(r) {
1353-
Some(err) => Err(uv_error_to_io_error(err)),
1354-
None => Ok(())
1355-
}
1331+
status_to_io_result(r)
13561332
}
13571333
}
13581334

@@ -1365,100 +1341,66 @@ impl RtioUdpSocket for UvUdpSocket {
13651341
uvll::UV_LEAVE_GROUP)
13661342
}
13671343
};
1368-
1369-
match status_to_maybe_uv_error(r) {
1370-
Some(err) => Err(uv_error_to_io_error(err)),
1371-
None => Ok(())
1372-
}
1344+
status_to_io_result(r)
13731345
}
13741346
}
13751347

13761348
fn loop_multicast_locally(&mut self) -> Result<(), IoError> {
13771349
do self.home_for_io |self_| {
1378-
13791350
let r = unsafe {
13801351
uvll::uv_udp_set_multicast_loop(self_.watcher.native_handle(),
13811352
1 as c_int)
13821353
};
1383-
1384-
match status_to_maybe_uv_error(r) {
1385-
Some(err) => Err(uv_error_to_io_error(err)),
1386-
None => Ok(())
1387-
}
1354+
status_to_io_result(r)
13881355
}
13891356
}
13901357

13911358
fn dont_loop_multicast_locally(&mut self) -> Result<(), IoError> {
13921359
do self.home_for_io |self_| {
1393-
13941360
let r = unsafe {
13951361
uvll::uv_udp_set_multicast_loop(self_.watcher.native_handle(),
13961362
0 as c_int)
13971363
};
1398-
1399-
match status_to_maybe_uv_error(r) {
1400-
Some(err) => Err(uv_error_to_io_error(err)),
1401-
None => Ok(())
1402-
}
1364+
status_to_io_result(r)
14031365
}
14041366
}
14051367

14061368
fn multicast_time_to_live(&mut self, ttl: int) -> Result<(), IoError> {
14071369
do self.home_for_io |self_| {
1408-
14091370
let r = unsafe {
14101371
uvll::uv_udp_set_multicast_ttl(self_.watcher.native_handle(),
14111372
ttl as c_int)
14121373
};
1413-
1414-
match status_to_maybe_uv_error(r) {
1415-
Some(err) => Err(uv_error_to_io_error(err)),
1416-
None => Ok(())
1417-
}
1374+
status_to_io_result(r)
14181375
}
14191376
}
14201377

14211378
fn time_to_live(&mut self, ttl: int) -> Result<(), IoError> {
14221379
do self.home_for_io |self_| {
1423-
14241380
let r = unsafe {
14251381
uvll::uv_udp_set_ttl(self_.watcher.native_handle(), ttl as c_int)
14261382
};
1427-
1428-
match status_to_maybe_uv_error(r) {
1429-
Some(err) => Err(uv_error_to_io_error(err)),
1430-
None => Ok(())
1431-
}
1383+
status_to_io_result(r)
14321384
}
14331385
}
14341386

14351387
fn hear_broadcasts(&mut self) -> Result<(), IoError> {
14361388
do self.home_for_io |self_| {
1437-
14381389
let r = unsafe {
14391390
uvll::uv_udp_set_broadcast(self_.watcher.native_handle(),
14401391
1 as c_int)
14411392
};
1442-
1443-
match status_to_maybe_uv_error(r) {
1444-
Some(err) => Err(uv_error_to_io_error(err)),
1445-
None => Ok(())
1446-
}
1393+
status_to_io_result(r)
14471394
}
14481395
}
14491396

14501397
fn ignore_broadcasts(&mut self) -> Result<(), IoError> {
14511398
do self.home_for_io |self_| {
1452-
14531399
let r = unsafe {
14541400
uvll::uv_udp_set_broadcast(self_.watcher.native_handle(),
14551401
0 as c_int)
14561402
};
1457-
1458-
match status_to_maybe_uv_error(r) {
1459-
Some(err) => Err(uv_error_to_io_error(err)),
1460-
None => Ok(())
1461-
}
1403+
status_to_io_result(r)
14621404
}
14631405
}
14641406
}

0 commit comments

Comments
 (0)