@@ -94,13 +94,11 @@ mod queue;
94
94
#[ cfg( feature = "sink" ) ]
95
95
mod sink_impl;
96
96
97
- #[ derive( Debug ) ]
98
97
struct UnboundedSenderInner < T > {
99
98
// Channel state shared between the sender and receiver.
100
99
inner : Arc < UnboundedInner < T > > ,
101
100
}
102
101
103
- #[ derive( Debug ) ]
104
102
struct BoundedSenderInner < T > {
105
103
// Channel state shared between the sender and receiver.
106
104
inner : Arc < BoundedInner < T > > ,
@@ -122,13 +120,11 @@ impl<T> Unpin for BoundedSenderInner<T> {}
122
120
/// The transmission end of a bounded mpsc channel.
123
121
///
124
122
/// This value is created by the [`channel`](channel) function.
125
- #[ derive( Debug ) ]
126
123
pub struct Sender < T > ( Option < BoundedSenderInner < T > > ) ;
127
124
128
125
/// The transmission end of an unbounded mpsc channel.
129
126
///
130
127
/// This value is created by the [`unbounded`](unbounded) function.
131
- #[ derive( Debug ) ]
132
128
pub struct UnboundedSender < T > ( Option < UnboundedSenderInner < T > > ) ;
133
129
134
130
trait AssertKinds : Send + Sync + Clone { }
@@ -137,15 +133,13 @@ impl AssertKinds for UnboundedSender<u32> {}
137
133
/// The receiving end of a bounded mpsc channel.
138
134
///
139
135
/// This value is created by the [`channel`](channel) function.
140
- #[ derive( Debug ) ]
141
136
pub struct Receiver < T > {
142
137
inner : Option < Arc < BoundedInner < T > > > ,
143
138
}
144
139
145
140
/// The receiving end of an unbounded mpsc channel.
146
141
///
147
142
/// This value is created by the [`unbounded`](unbounded) function.
148
- #[ derive( Debug ) ]
149
143
pub struct UnboundedReceiver < T > {
150
144
inner : Option < Arc < UnboundedInner < T > > > ,
151
145
}
@@ -255,7 +249,6 @@ impl fmt::Display for TryRecvError {
255
249
256
250
impl std:: error:: Error for TryRecvError { }
257
251
258
- #[ derive( Debug ) ]
259
252
struct UnboundedInner < T > {
260
253
// Internal channel state. Consists of the number of messages stored in the
261
254
// channel as well as a flag signalling that the channel is closed.
@@ -271,7 +264,6 @@ struct UnboundedInner<T> {
271
264
recv_task : AtomicWaker ,
272
265
}
273
266
274
- #[ derive( Debug ) ]
275
267
struct BoundedInner < T > {
276
268
// Max buffer size of the channel.
277
269
buffer : usize ,
@@ -294,7 +286,7 @@ struct BoundedInner<T> {
294
286
}
295
287
296
288
// Struct representation of `Inner::state`.
297
- #[ derive( Debug , Clone , Copy ) ]
289
+ #[ derive( Clone , Copy ) ]
298
290
struct State {
299
291
// `true` when the channel is open
300
292
is_open : bool ,
@@ -318,7 +310,6 @@ const MAX_CAPACITY: usize = !(OPEN_MASK);
318
310
const MAX_BUFFER : usize = MAX_CAPACITY >> 1 ;
319
311
320
312
// Sent to the consumer to wake up blocked producers
321
- #[ derive( Debug ) ]
322
313
struct SenderTask {
323
314
task : Option < Waker > ,
324
315
is_parked : bool ,
@@ -941,6 +932,18 @@ impl<T> Drop for BoundedSenderInner<T> {
941
932
}
942
933
}
943
934
935
+ impl < T > fmt:: Debug for Sender < T > {
936
+ fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
937
+ f. debug_struct ( "Sender" ) . field ( "closed" , & self . is_closed ( ) ) . finish ( )
938
+ }
939
+ }
940
+
941
+ impl < T > fmt:: Debug for UnboundedSender < T > {
942
+ fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
943
+ f. debug_struct ( "UnboundedSender" ) . field ( "closed" , & self . is_closed ( ) ) . finish ( )
944
+ }
945
+ }
946
+
944
947
/*
945
948
*
946
949
* ===== impl Receiver =====
@@ -1101,6 +1104,18 @@ impl<T> Drop for Receiver<T> {
1101
1104
}
1102
1105
}
1103
1106
1107
+ impl < T > fmt:: Debug for Receiver < T > {
1108
+ fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
1109
+ let closed = if let Some ( ref inner) = self . inner {
1110
+ decode_state ( inner. state . load ( SeqCst ) ) . is_closed ( )
1111
+ } else {
1112
+ false
1113
+ } ;
1114
+
1115
+ f. debug_struct ( "Receiver" ) . field ( "closed" , & closed) . finish ( )
1116
+ }
1117
+ }
1118
+
1104
1119
impl < T > UnboundedReceiver < T > {
1105
1120
/// Closes the receiving half of a channel, without dropping it.
1106
1121
///
@@ -1233,6 +1248,18 @@ impl<T> Drop for UnboundedReceiver<T> {
1233
1248
}
1234
1249
}
1235
1250
1251
+ impl < T > fmt:: Debug for UnboundedReceiver < T > {
1252
+ fn fmt ( & self , f : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
1253
+ let closed = if let Some ( ref inner) = self . inner {
1254
+ decode_state ( inner. state . load ( SeqCst ) ) . is_closed ( )
1255
+ } else {
1256
+ false
1257
+ } ;
1258
+
1259
+ f. debug_struct ( "Receiver" ) . field ( "closed" , & closed) . finish ( )
1260
+ }
1261
+ }
1262
+
1236
1263
/*
1237
1264
*
1238
1265
* ===== impl Inner =====
0 commit comments