3
3
//! Contains various combinators to work with I/O objects and type definitions
4
4
//! as well.
5
5
6
- use std:: io:: { self , Read , Write } ;
6
+ use std:: io;
7
7
8
8
use futures:: { BoxFuture , Async , Poll } ;
9
9
use futures:: stream:: BoxStream ;
@@ -44,7 +44,7 @@ pub use self::copy::{copy, Copy};
44
44
pub use self :: flush:: { flush, Flush } ;
45
45
pub use self :: read_exact:: { read_exact, ReadExact } ;
46
46
pub use self :: read_to_end:: { read_to_end, ReadToEnd } ;
47
- pub use self :: read:: read;
47
+ pub use self :: read:: { read, Read } ;
48
48
pub use self :: read_until:: { read_until, ReadUntil } ;
49
49
pub use self :: split:: { ReadHalf , WriteHalf } ;
50
50
pub use self :: window:: Window ;
@@ -61,7 +61,7 @@ pub use self::write_all::{write_all, WriteAll};
61
61
/// value that indicates "would block" the current future's task is arranged to
62
62
/// receive a notification when the method would otherwise not indicate that it
63
63
/// would block.
64
- pub trait Io : Read + Write {
64
+ pub trait Io : io :: Read + io :: Write {
65
65
/// Tests to see if this I/O object may be readable.
66
66
///
67
67
/// This method returns an `Async<()>` indicating whether the object
0 commit comments