Add RecvStream::is_end_stream. (#165)
This function returns true if the `RecvStream` has reached an end of stream state. This is intended to replace `is_empty` which has confusing behavior.
This commit is contained in:
		| @@ -330,6 +330,16 @@ impl Recv { | ||||
|             .unwrap_or(true) | ||||
|     } | ||||
|  | ||||
|     pub fn is_end_stream(&self, stream: &store::Ptr) -> bool { | ||||
|         if !stream.state.is_recv_closed() { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
|         stream | ||||
|             .pending_recv | ||||
|             .is_empty() | ||||
|     } | ||||
|  | ||||
|     pub fn recv_data( | ||||
|         &mut self, | ||||
|         frame: frame::Data, | ||||
|   | ||||
| @@ -758,6 +758,15 @@ impl OpaqueStreamRef { | ||||
|         me.actions.recv.body_is_empty(&stream) | ||||
|     } | ||||
|  | ||||
|     pub fn is_end_stream(&self) -> bool { | ||||
|         let mut me = self.inner.lock().unwrap(); | ||||
|         let me = &mut *me; | ||||
|  | ||||
|         let stream = me.store.resolve(self.key); | ||||
|  | ||||
|         me.actions.recv.is_end_stream(&stream) | ||||
|     } | ||||
|  | ||||
|     pub fn poll_data(&mut self) -> Poll<Option<Bytes>, proto::Error> { | ||||
|         let mut me = self.inner.lock().unwrap(); | ||||
|         let me = &mut *me; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user