about summary refs log tree commit diff
path: root/src/libstd/sync/mpsc
diff options
context:
space:
mode:
authorOlaf Buddenhagen <antrik@users.sf.net>2015-12-26 18:31:02 +0100
committerOlaf Buddenhagen <antrik@users.sf.net>2016-01-14 09:57:27 +0100
commit0e3fb184ed1cf269ec04531c2750d9cce4c034bd (patch)
tree97fc5154ccf13352f455df7a03208c76e612261e /src/libstd/sync/mpsc
parente1f550ebc299d5eadc073160cd3acb8de6c5d857 (diff)
downloadrust-0e3fb184ed1cf269ec04531c2750d9cce4c034bd.tar.gz
rust-0e3fb184ed1cf269ec04531c2750d9cce4c034bd.zip
std::sync::mpsc: Add fmt::Debug stubs
Minimal fix for https://github.com/rust-lang/rust/issues/30563

This covers all the public structs I think; except for Iter and
IntoIter, which I don't know if or how they should be handled.
Diffstat (limited to 'src/libstd/sync/mpsc')
-rw-r--r--src/libstd/sync/mpsc/mod.rs39
-rw-r--r--src/libstd/sync/mpsc/select.rs30
2 files changed, 69 insertions, 0 deletions
diff --git a/src/libstd/sync/mpsc/mod.rs b/src/libstd/sync/mpsc/mod.rs
index e87ae19c583..e2c900f3af0 100644
--- a/src/libstd/sync/mpsc/mod.rs
+++ b/src/libstd/sync/mpsc/mod.rs
@@ -635,6 +635,13 @@ impl<T> Drop for Sender<T> {
     }
 }
 
+#[stable(feature = "mpsc_debug", since = "1.7.0")]
+impl<T> fmt::Debug for Sender<T> {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        write!(f, "Sender {{ .. }}")
+    }
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // SyncSender
 ////////////////////////////////////////////////////////////////////////////////
@@ -693,6 +700,13 @@ impl<T> Drop for SyncSender<T> {
     }
 }
 
+#[stable(feature = "mpsc_debug", since = "1.7.0")]
+impl<T> fmt::Debug for SyncSender<T> {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        write!(f, "SyncSender {{ .. }}")
+    }
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // Receiver
 ////////////////////////////////////////////////////////////////////////////////
@@ -987,6 +1001,13 @@ impl<T> Drop for Receiver<T> {
     }
 }
 
+#[stable(feature = "mpsc_debug", since = "1.7.0")]
+impl<T> fmt::Debug for Receiver<T> {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        write!(f, "Receiver {{ .. }}")
+    }
+}
+
 #[stable(feature = "rust1", since = "1.0.0")]
 impl<T> fmt::Debug for SendError<T> {
     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
@@ -2199,4 +2220,22 @@ mod sync_tests {
             repro()
         }
     }
+
+    #[test]
+    fn fmt_debug_sender() {
+        let (tx, _) = channel::<i32>();
+        assert_eq!(format!("{:?}", tx), "Sender { .. }");
+    }
+
+    #[test]
+    fn fmt_debug_recv() {
+        let (_, rx) = channel::<i32>();
+        assert_eq!(format!("{:?}", rx), "Receiver { .. }");
+    }
+
+    #[test]
+    fn fmt_debug_sync_sender() {
+        let (tx, _) = sync_channel::<i32>(1);
+        assert_eq!(format!("{:?}", tx), "SyncSender { .. }");
+    }
 }
diff --git a/src/libstd/sync/mpsc/select.rs b/src/libstd/sync/mpsc/select.rs
index cc068fd1dea..d743cbb1890 100644
--- a/src/libstd/sync/mpsc/select.rs
+++ b/src/libstd/sync/mpsc/select.rs
@@ -58,6 +58,8 @@
             issue = "27800")]
 
 
+use fmt;
+
 use core::cell::{Cell, UnsafeCell};
 use core::marker;
 use core::ptr;
@@ -350,6 +352,20 @@ impl Iterator for Packets {
     }
 }
 
+#[stable(feature = "mpsc_debug", since = "1.7.0")]
+impl fmt::Debug for Select {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        write!(f, "Select {{ .. }}")
+    }
+}
+
+#[stable(feature = "mpsc_debug", since = "1.7.0")]
+impl<'rx, T:Send+'rx> fmt::Debug for Handle<'rx, T> {
+    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+        write!(f, "Handle {{ .. }}")
+    }
+}
+
 #[cfg(test)]
 #[allow(unused_imports)]
 mod tests {
@@ -762,4 +778,18 @@ mod tests {
             }
         }
     }
+
+    #[test]
+    fn fmt_debug_select() {
+        let sel = Select::new();
+        assert_eq!(format!("{:?}", sel), "Select { .. }");
+    }
+
+    #[test]
+    fn fmt_debug_handle() {
+        let (_, rx) = channel::<i32>();
+        let sel = Select::new();
+        let mut handle = sel.handle(&rx);
+        assert_eq!(format!("{:?}", handle), "Handle { .. }");
+    }
 }