summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2013-11-03 11:02:19 -0800
committerAlex Crichton <alex@alexcrichton.com>2013-11-10 01:37:10 -0800
commit4bcde6bc068b8962d368fc70bd68cb21f5d1013c (patch)
tree01b8cb4cf35963b47de7adf072cc81d043226579 /src
parent30c885ea52458b361bb8f215c17c384743e6851a (diff)
downloadrust-4bcde6bc068b8962d368fc70bd68cb21f5d1013c.tar.gz
rust-4bcde6bc068b8962d368fc70bd68cb21f5d1013c.zip
uv: Provide a helper fn to Result<(), IoError>
Diffstat (limited to 'src')
-rw-r--r--src/librustuv/lib.rs9
-rw-r--r--src/librustuv/uvio.rs84
2 files changed, 19 insertions, 74 deletions
diff --git a/src/librustuv/lib.rs b/src/librustuv/lib.rs
index 64aea4f0174..6aa8723a401 100644
--- a/src/librustuv/lib.rs
+++ b/src/librustuv/lib.rs
@@ -341,9 +341,8 @@ pub fn uv_error_to_io_error(uverr: UvError) -> IoError {
     }
 }
 
-/// Given a uv handle, convert a callback status to a UvError
-pub fn status_to_maybe_uv_error(status: c_int) -> Option<UvError>
-{
+/// Given a uv error code, convert a callback status to a UvError
+pub fn status_to_maybe_uv_error(status: c_int) -> Option<UvError> {
     if status >= 0 {
         None
     } else {
@@ -351,6 +350,10 @@ pub fn status_to_maybe_uv_error(status: c_int) -> Option<UvError>
     }
 }
 
+pub fn status_to_io_result(status: c_int) -> Result<(), IoError> {
+    if status >= 0 {Ok(())} else {Err(uv_error_to_io_error(UvError(status)))}
+}
+
 /// The uv buffer type
 pub type Buf = uvll::uv_buf_t;
 
diff --git a/src/librustuv/uvio.rs b/src/librustuv/uvio.rs
index b4382ab4cee..1dbc7d71543 100644
--- a/src/librustuv/uvio.rs
+++ b/src/librustuv/uvio.rs
@@ -992,11 +992,7 @@ fn accept_simultaneously(stream: StreamWatcher, a: int) -> Result<(), IoError> {
     let r = unsafe {
         uvll::uv_tcp_simultaneous_accepts(stream.native_handle(), a as c_int)
     };
-
-    match status_to_maybe_uv_error(r) {
-        Some(err) => Err(uv_error_to_io_error(err)),
-        None => Ok(())
-    }
+    status_to_io_result(r)
 }
 
 impl RtioTcpAcceptor for UvTcpAcceptor {
@@ -1197,11 +1193,7 @@ impl RtioTcpStream for UvTcpStream {
             let r = unsafe {
                 uvll::uv_tcp_nodelay(self_.watcher.native_handle(), 0 as c_int)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
@@ -1210,11 +1202,7 @@ impl RtioTcpStream for UvTcpStream {
             let r = unsafe {
                 uvll::uv_tcp_nodelay(self_.watcher.native_handle(), 1 as c_int)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
@@ -1224,11 +1212,7 @@ impl RtioTcpStream for UvTcpStream {
                 uvll::uv_tcp_keepalive(self_.watcher.native_handle(), 1 as c_int,
                                        delay_in_seconds as c_uint)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
@@ -1238,11 +1222,7 @@ impl RtioTcpStream for UvTcpStream {
                 uvll::uv_tcp_keepalive(self_.watcher.native_handle(),
                                        0 as c_int, 0 as c_uint)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 }
@@ -1348,11 +1328,7 @@ impl RtioUdpSocket for UvUdpSocket {
                                                 uvll::UV_JOIN_GROUP)
                 }
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
@@ -1365,100 +1341,66 @@ impl RtioUdpSocket for UvUdpSocket {
                                                 uvll::UV_LEAVE_GROUP)
                 }
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
     fn loop_multicast_locally(&mut self) -> Result<(), IoError> {
         do self.home_for_io |self_| {
-
             let r = unsafe {
                 uvll::uv_udp_set_multicast_loop(self_.watcher.native_handle(),
                                                 1 as c_int)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
     fn dont_loop_multicast_locally(&mut self) -> Result<(), IoError> {
         do self.home_for_io |self_| {
-
             let r = unsafe {
                 uvll::uv_udp_set_multicast_loop(self_.watcher.native_handle(),
                                                 0 as c_int)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
     fn multicast_time_to_live(&mut self, ttl: int) -> Result<(), IoError> {
         do self.home_for_io |self_| {
-
             let r = unsafe {
                 uvll::uv_udp_set_multicast_ttl(self_.watcher.native_handle(),
                                                ttl as c_int)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
     fn time_to_live(&mut self, ttl: int) -> Result<(), IoError> {
         do self.home_for_io |self_| {
-
             let r = unsafe {
                 uvll::uv_udp_set_ttl(self_.watcher.native_handle(), ttl as c_int)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
     fn hear_broadcasts(&mut self) -> Result<(), IoError> {
         do self.home_for_io |self_| {
-
             let r = unsafe {
                 uvll::uv_udp_set_broadcast(self_.watcher.native_handle(),
                                            1 as c_int)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 
     fn ignore_broadcasts(&mut self) -> Result<(), IoError> {
         do self.home_for_io |self_| {
-
             let r = unsafe {
                 uvll::uv_udp_set_broadcast(self_.watcher.native_handle(),
                                            0 as c_int)
             };
-
-            match status_to_maybe_uv_error(r) {
-                Some(err) => Err(uv_error_to_io_error(err)),
-                None => Ok(())
-            }
+            status_to_io_result(r)
         }
     }
 }