File tree 1 file changed +13
-1
lines changed
1 file changed +13
-1
lines changed Original file line number Diff line number Diff line change @@ -75,21 +75,33 @@ impl<S: Sink> Sink for Buffer<S> {
75
75
type SinkError = S :: SinkError ;
76
76
77
77
fn start_send ( & mut self , item : Self :: SinkItem ) -> StartSend < Self :: SinkItem , Self :: SinkError > {
78
+ if self . cap == 0 {
79
+ return self . sink . start_send ( item) ;
80
+ }
81
+
78
82
self . try_empty_buffer ( ) ?;
79
- if self . buf . len ( ) > self . cap {
83
+ if self . buf . len ( ) == self . cap {
80
84
return Ok ( AsyncSink :: NotReady ( item) ) ;
81
85
}
82
86
self . buf . push_back ( item) ;
83
87
Ok ( AsyncSink :: Ready )
84
88
}
85
89
86
90
fn poll_complete ( & mut self ) -> Poll < ( ) , Self :: SinkError > {
91
+ if self . cap == 0 {
92
+ return self . sink . poll_complete ( ) ;
93
+ }
94
+
87
95
try_ready ! ( self . try_empty_buffer( ) ) ;
88
96
debug_assert ! ( self . buf. is_empty( ) ) ;
89
97
self . sink . poll_complete ( )
90
98
}
91
99
92
100
fn close ( & mut self ) -> Poll < ( ) , Self :: SinkError > {
101
+ if self . cap == 0 {
102
+ return self . sink . close ( ) ;
103
+ }
104
+
93
105
if self . buf . len ( ) > 0 {
94
106
try_ready ! ( self . try_empty_buffer( ) ) ;
95
107
}
You can’t perform that action at this time.
0 commit comments