@@ -7,7 +7,7 @@ use std::convert::TryFrom;
7
7
use std:: iter:: FusedIterator ;
8
8
use std:: mem;
9
9
use std:: ops:: Range ;
10
- use std:: os:: unix:: io:: { AsFd , AsRawFd , BorrowedFd , RawFd } ;
10
+ use std:: os:: unix:: io:: { AsRawFd , BorrowedFd , RawFd } ;
11
11
use std:: ptr:: { null, null_mut} ;
12
12
13
13
pub use libc:: FD_SETSIZE ;
@@ -41,21 +41,21 @@ impl<'fd> FdSet<'fd> {
41
41
}
42
42
43
43
/// Add a file descriptor to an `FdSet`
44
- pub fn insert < Fd : AsFd + ' fd > ( & mut self , fd : Fd ) {
45
- assert_fd_valid ( fd. as_fd ( ) . as_raw_fd ( ) ) ;
46
- unsafe { libc:: FD_SET ( fd. as_fd ( ) . as_raw_fd ( ) , & mut self . set ) } ;
44
+ pub fn insert ( & mut self , fd : BorrowedFd < ' fd > ) {
45
+ assert_fd_valid ( fd. as_raw_fd ( ) ) ;
46
+ unsafe { libc:: FD_SET ( fd. as_raw_fd ( ) , & mut self . set ) } ;
47
47
}
48
48
49
49
/// Remove a file descriptor from an `FdSet`
50
- pub fn remove < Fd : AsFd + ' fd > ( & mut self , fd : Fd ) {
51
- assert_fd_valid ( fd. as_fd ( ) . as_raw_fd ( ) ) ;
52
- unsafe { libc:: FD_CLR ( fd. as_fd ( ) . as_raw_fd ( ) , & mut self . set ) } ;
50
+ pub fn remove ( & mut self , fd : BorrowedFd < ' fd > ) {
51
+ assert_fd_valid ( fd. as_raw_fd ( ) ) ;
52
+ unsafe { libc:: FD_CLR ( fd. as_raw_fd ( ) , & mut self . set ) } ;
53
53
}
54
54
55
55
/// Test an `FdSet` for the presence of a certain file descriptor.
56
- pub fn contains < Fd : AsFd + ' fd > ( & self , fd : Fd ) -> bool {
57
- assert_fd_valid ( fd. as_fd ( ) . as_raw_fd ( ) ) ;
58
- unsafe { libc:: FD_ISSET ( fd. as_fd ( ) . as_raw_fd ( ) , & self . set ) }
56
+ pub fn contains ( & self , fd : BorrowedFd < ' fd > ) -> bool {
57
+ assert_fd_valid ( fd. as_raw_fd ( ) ) ;
58
+ unsafe { libc:: FD_ISSET ( fd. as_raw_fd ( ) , & self . set ) }
59
59
}
60
60
61
61
/// Remove all file descriptors from this `FdSet`.
@@ -72,13 +72,13 @@ impl<'fd> FdSet<'fd> {
72
72
/// # Example
73
73
///
74
74
/// ```
75
- /// # use std::os::unix::io::{AsRawFd, BorrowedFd};
75
+ /// # use std::os::unix::io::{AsFd, AsRawFd, BorrowedFd};
76
76
/// # use nix::sys::select::FdSet;
77
77
/// let fd_four = unsafe {BorrowedFd::borrow_raw(4)};
78
78
/// let fd_nine = unsafe {BorrowedFd::borrow_raw(9)};
79
79
/// let mut set = FdSet::new();
80
- /// set.insert(& fd_four);
81
- /// set.insert(& fd_nine);
80
+ /// set.insert(fd_four);
81
+ /// set.insert(fd_nine);
82
82
/// assert_eq!(set.highest().map(|borrowed_fd|borrowed_fd.as_raw_fd()), Some(9));
83
83
/// ```
84
84
///
@@ -97,12 +97,12 @@ impl<'fd> FdSet<'fd> {
97
97
///
98
98
/// ```
99
99
/// # use nix::sys::select::FdSet;
100
- /// # use std::os::unix::io::{AsRawFd, BorrowedFd, RawFd};
100
+ /// # use std::os::unix::io::{AsFd, AsRawFd, BorrowedFd, RawFd};
101
101
/// let mut set = FdSet::new();
102
102
/// let fd_four = unsafe {BorrowedFd::borrow_raw(4)};
103
103
/// let fd_nine = unsafe {BorrowedFd::borrow_raw(9)};
104
- /// set.insert(& fd_four);
105
- /// set.insert(& fd_nine);
104
+ /// set.insert(fd_four);
105
+ /// set.insert(fd_nine);
106
106
/// let fds: Vec<RawFd> = set.fds(None).map(|borrowed_fd|borrowed_fd.as_raw_fd()).collect();
107
107
/// assert_eq!(fds, vec![4, 9]);
108
108
/// ```
@@ -134,7 +134,7 @@ impl<'a, 'fd> Iterator for Fds<'a, 'fd> {
134
134
fn next ( & mut self ) -> Option < Self :: Item > {
135
135
for i in & mut self . range {
136
136
let borrowed_i = unsafe { BorrowedFd :: borrow_raw ( i as RawFd ) } ;
137
- if self . set . contains ( & borrowed_i) {
137
+ if self . set . contains ( borrowed_i) {
138
138
return Some ( borrowed_i) ;
139
139
}
140
140
}
@@ -153,7 +153,7 @@ impl<'a, 'fd> DoubleEndedIterator for Fds<'a, 'fd> {
153
153
fn next_back ( & mut self ) -> Option < BorrowedFd < ' fd > > {
154
154
while let Some ( i) = self . range . next_back ( ) {
155
155
let borrowed_i = unsafe { BorrowedFd :: borrow_raw ( i as RawFd ) } ;
156
- if self . set . contains ( & borrowed_i) {
156
+ if self . set . contains ( borrowed_i) {
157
157
return Some ( borrowed_i) ;
158
158
}
159
159
}
@@ -323,21 +323,21 @@ mod tests {
323
323
use super :: * ;
324
324
use crate :: sys:: time:: { TimeVal , TimeValLike } ;
325
325
use crate :: unistd:: { pipe, write} ;
326
- use std:: os:: unix:: io:: RawFd ;
326
+ use std:: os:: unix:: io:: { AsFd , RawFd } ;
327
327
328
328
#[ test]
329
329
fn fdset_insert ( ) {
330
330
let mut fd_set = FdSet :: new ( ) ;
331
331
332
332
for i in 0 ..FD_SETSIZE {
333
333
let borrowed_i = unsafe { BorrowedFd :: borrow_raw ( i as RawFd ) } ;
334
- assert ! ( !fd_set. contains( & borrowed_i) ) ;
334
+ assert ! ( !fd_set. contains( borrowed_i) ) ;
335
335
}
336
336
337
337
let fd_seven = unsafe { BorrowedFd :: borrow_raw ( 7 ) } ;
338
- fd_set. insert ( & fd_seven) ;
338
+ fd_set. insert ( fd_seven) ;
339
339
340
- assert ! ( fd_set. contains( & fd_seven) ) ;
340
+ assert ! ( fd_set. contains( fd_seven) ) ;
341
341
}
342
342
343
343
#[ test]
@@ -346,16 +346,16 @@ mod tests {
346
346
347
347
for i in 0 ..FD_SETSIZE {
348
348
let borrowed_i = unsafe { BorrowedFd :: borrow_raw ( i as RawFd ) } ;
349
- assert ! ( !fd_set. contains( & borrowed_i) ) ;
349
+ assert ! ( !fd_set. contains( borrowed_i) ) ;
350
350
}
351
351
352
352
let fd_seven = unsafe { BorrowedFd :: borrow_raw ( 7 ) } ;
353
- fd_set. insert ( & fd_seven) ;
354
- fd_set. remove ( & fd_seven) ;
353
+ fd_set. insert ( fd_seven) ;
354
+ fd_set. remove ( fd_seven) ;
355
355
356
356
for i in 0 ..FD_SETSIZE {
357
357
let borrowed_i = unsafe { BorrowedFd :: borrow_raw ( i as RawFd ) } ;
358
- assert ! ( !fd_set. contains( & borrowed_i) ) ;
358
+ assert ! ( !fd_set. contains( borrowed_i) ) ;
359
359
}
360
360
}
361
361
@@ -364,19 +364,19 @@ mod tests {
364
364
fn fdset_clear ( ) {
365
365
let mut fd_set = FdSet :: new ( ) ;
366
366
let fd_one = unsafe { BorrowedFd :: borrow_raw ( 1 ) } ;
367
- let fd_FD_SETSIZE_devided_by_two =
367
+ let fd_FD_SETSIZE_divided_by_two =
368
368
unsafe { BorrowedFd :: borrow_raw ( ( FD_SETSIZE / 2 ) as RawFd ) } ;
369
369
let fd_FD_SETSIZE_minus_one =
370
370
unsafe { BorrowedFd :: borrow_raw ( ( FD_SETSIZE - 1 ) as RawFd ) } ;
371
- fd_set. insert ( & fd_one) ;
372
- fd_set. insert ( & fd_FD_SETSIZE_devided_by_two ) ;
373
- fd_set. insert ( & fd_FD_SETSIZE_minus_one) ;
371
+ fd_set. insert ( fd_one) ;
372
+ fd_set. insert ( fd_FD_SETSIZE_divided_by_two ) ;
373
+ fd_set. insert ( fd_FD_SETSIZE_minus_one) ;
374
374
375
375
fd_set. clear ( ) ;
376
376
377
377
for i in 0 ..FD_SETSIZE {
378
378
let borrowed_i = unsafe { BorrowedFd :: borrow_raw ( i as RawFd ) } ;
379
- assert ! ( !fd_set. contains( & borrowed_i) ) ;
379
+ assert ! ( !fd_set. contains( borrowed_i) ) ;
380
380
}
381
381
}
382
382
@@ -389,22 +389,22 @@ mod tests {
389
389
) ;
390
390
let fd_zero = unsafe { BorrowedFd :: borrow_raw ( 0 ) } ;
391
391
let fd_ninety = unsafe { BorrowedFd :: borrow_raw ( 90 ) } ;
392
- set. insert ( & fd_zero) ;
392
+ set. insert ( fd_zero) ;
393
393
assert_eq ! (
394
394
set. highest( ) . map( |borrowed_fd| borrowed_fd. as_raw_fd( ) ) ,
395
395
Some ( 0 )
396
396
) ;
397
- set. insert ( & fd_ninety) ;
397
+ set. insert ( fd_ninety) ;
398
398
assert_eq ! (
399
399
set. highest( ) . map( |borrowed_fd| borrowed_fd. as_raw_fd( ) ) ,
400
400
Some ( 90 )
401
401
) ;
402
- set. remove ( & fd_zero) ;
402
+ set. remove ( fd_zero) ;
403
403
assert_eq ! (
404
404
set. highest( ) . map( |borrowed_fd| borrowed_fd. as_raw_fd( ) ) ,
405
405
Some ( 90 )
406
406
) ;
407
- set. remove ( & fd_ninety) ;
407
+ set. remove ( fd_ninety) ;
408
408
assert_eq ! (
409
409
set. highest( ) . map( |borrowed_fd| borrowed_fd. as_raw_fd( ) ) ,
410
410
None
@@ -413,9 +413,9 @@ mod tests {
413
413
let fd_four = unsafe { BorrowedFd :: borrow_raw ( 4 ) } ;
414
414
let fd_five = unsafe { BorrowedFd :: borrow_raw ( 5 ) } ;
415
415
let fd_seven = unsafe { BorrowedFd :: borrow_raw ( 7 ) } ;
416
- set. insert ( & fd_four) ;
417
- set. insert ( & fd_five) ;
418
- set. insert ( & fd_seven) ;
416
+ set. insert ( fd_four) ;
417
+ set. insert ( fd_five) ;
418
+ set. insert ( fd_seven) ;
419
419
assert_eq ! (
420
420
set. highest( ) . map( |borrowed_fd| borrowed_fd. as_raw_fd( ) ) ,
421
421
Some ( 7 )
@@ -433,14 +433,14 @@ mod tests {
433
433
. collect:: <Vec <_>>( ) ,
434
434
vec![ ]
435
435
) ;
436
- set. insert ( & fd_zero) ;
436
+ set. insert ( fd_zero) ;
437
437
assert_eq ! (
438
438
set. fds( None )
439
439
. map( |borrowed_fd| borrowed_fd. as_raw_fd( ) )
440
440
. collect:: <Vec <_>>( ) ,
441
441
vec![ 0 ]
442
442
) ;
443
- set. insert ( & fd_ninety) ;
443
+ set. insert ( fd_ninety) ;
444
444
assert_eq ! (
445
445
set. fds( None )
446
446
. map( |borrowed_fd| borrowed_fd. as_raw_fd( ) )
@@ -470,16 +470,16 @@ mod tests {
470
470
471
471
write ( & w1, b"hi!" ) . unwrap ( ) ;
472
472
let mut fd_set = FdSet :: new ( ) ;
473
- fd_set. insert ( & r1 ) ;
474
- fd_set. insert ( & r2 ) ;
473
+ fd_set. insert ( r1 . as_fd ( ) ) ;
474
+ fd_set. insert ( r2 . as_fd ( ) ) ;
475
475
476
476
let mut timeout = TimeVal :: seconds ( 10 ) ;
477
477
assert_eq ! (
478
478
1 ,
479
479
select( None , & mut fd_set, None , None , & mut timeout) . unwrap( )
480
480
) ;
481
- assert ! ( fd_set. contains( & r1 ) ) ;
482
- assert ! ( !fd_set. contains( & r2 ) ) ;
481
+ assert ! ( fd_set. contains( r1 . as_fd ( ) ) ) ;
482
+ assert ! ( !fd_set. contains( r2 . as_fd ( ) ) ) ;
483
483
}
484
484
485
485
#[ test]
@@ -489,8 +489,8 @@ mod tests {
489
489
490
490
write ( & w1, b"hi!" ) . unwrap ( ) ;
491
491
let mut fd_set = FdSet :: new ( ) ;
492
- fd_set. insert ( & r1 ) ;
493
- fd_set. insert ( & r2 ) ;
492
+ fd_set. insert ( r1 . as_fd ( ) ) ;
493
+ fd_set. insert ( r2 . as_fd ( ) ) ;
494
494
495
495
let mut timeout = TimeVal :: seconds ( 10 ) ;
496
496
{
@@ -512,8 +512,8 @@ mod tests {
512
512
. unwrap( )
513
513
) ;
514
514
}
515
- assert ! ( fd_set. contains( & r1 ) ) ;
516
- assert ! ( !fd_set. contains( & r2 ) ) ;
515
+ assert ! ( fd_set. contains( r1 . as_fd ( ) ) ) ;
516
+ assert ! ( !fd_set. contains( r2 . as_fd ( ) ) ) ;
517
517
}
518
518
519
519
#[ test]
@@ -522,8 +522,8 @@ mod tests {
522
522
write ( & w1, b"hi!" ) . unwrap ( ) ;
523
523
let ( r2, _w2) = pipe ( ) . unwrap ( ) ;
524
524
let mut fd_set = FdSet :: new ( ) ;
525
- fd_set. insert ( & r1 ) ;
526
- fd_set. insert ( & r2 ) ;
525
+ fd_set. insert ( r1 . as_fd ( ) ) ;
526
+ fd_set. insert ( r2 . as_fd ( ) ) ;
527
527
528
528
let mut timeout = TimeVal :: seconds ( 10 ) ;
529
529
assert_eq ! (
@@ -537,7 +537,7 @@ mod tests {
537
537
)
538
538
. unwrap( )
539
539
) ;
540
- assert ! ( fd_set. contains( & r1 ) ) ;
541
- assert ! ( !fd_set. contains( & r2 ) ) ;
540
+ assert ! ( fd_set. contains( r1 . as_fd ( ) ) ) ;
541
+ assert ! ( !fd_set. contains( r2 . as_fd ( ) ) ) ;
542
542
}
543
543
}
0 commit comments