Skip to content

Commit

Permalink
std::sync::mpsc: Add fmt::Debug stubs
Browse files Browse the repository at this point in the history
Minimal fix for #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.
  • Loading branch information
antrik committed Jan 14, 2016
1 parent e1f550e commit 0e3fb18
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 0 deletions.
39 changes: 39 additions & 0 deletions src/libstd/sync/mpsc/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -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
////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 { .. }");
}
}
30 changes: 30 additions & 0 deletions src/libstd/sync/mpsc/select.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@
issue = "27800")]


use fmt;

use core::cell::{Cell, UnsafeCell};
use core::marker;
use core::ptr;
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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 { .. }");
}
}

0 comments on commit 0e3fb18

Please sign in to comment.