@@ -4,6 +4,7 @@ use sys::time::TimeSpec;
4
4
#[ cfg( any( target_os = "android" , target_os = "dragonfly" , target_os = "freebsd" , target_os = "linux" ) ) ]
5
5
use sys:: signal:: SigSet ;
6
6
use std:: os:: unix:: io:: RawFd ;
7
+ use std:: fmt;
7
8
8
9
use libc;
9
10
use Result ;
@@ -19,7 +20,6 @@ use errno::Errno;
19
20
/// retrieved by calling [`revents()`](#method.revents) on the `PollFd`.
20
21
#[ repr( C ) ]
21
22
#[ derive( Clone , Copy ) ]
22
- #[ allow( missing_debug_implementations) ]
23
23
pub struct PollFd {
24
24
pollfd : libc:: pollfd ,
25
25
}
@@ -43,6 +43,23 @@ impl PollFd {
43
43
}
44
44
}
45
45
46
+ impl fmt:: Debug for PollFd {
47
+ fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
48
+ let pfd = self . pollfd ;
49
+ let mut ds = f. debug_struct ( "PollFd" ) ;
50
+ ds. field ( "fd" , & pfd. fd ) ;
51
+ match EventFlags :: from_bits ( pfd. events ) {
52
+ None => ds. field ( "events" , & pfd. events ) ,
53
+ Some ( ef) => ds. field ( "events" , & ef) ,
54
+ } ;
55
+ match EventFlags :: from_bits ( pfd. revents ) {
56
+ None => ds. field ( "revents" , & pfd. revents ) ,
57
+ Some ( ef) => ds. field ( "revents" , & ef) ,
58
+ } ;
59
+ ds. finish ( )
60
+ }
61
+ }
62
+
46
63
libc_bitflags ! {
47
64
/// These flags define the different events that can be monitored by `poll` and `ppoll`
48
65
pub struct EventFlags : libc:: c_short {
0 commit comments