File tree Expand file tree Collapse file tree 3 files changed +11
-10
lines changed
Expand file tree Collapse file tree 3 files changed +11
-10
lines changed Original file line number Diff line number Diff line change 11[package ]
22name = " stream_multiplexer"
3- version = " 0.7 .0"
3+ version = " 0.8 .0"
44authors = [
" Benjamin Halsted <[email protected] >" ]
55edition = " 2018"
66license = " MIT OR Apache-2.0"
Original file line number Diff line number Diff line change @@ -228,17 +228,18 @@ impl<V> std::fmt::Debug for IncomingPacket<V> {
228228/// The payload of an OutgoingPacket
229229#[ derive( Clone ) ]
230230pub struct OutgoingMessage < V > {
231- stream_ids : Vec < StreamId > ,
232- value : tinyvec:: TinyVec < [ Option < V > ; 16 ] > ,
231+ stream_ids : tinyvec :: TinyVec < [ Option < StreamId > ; 16 ] > ,
232+ values : tinyvec:: TinyVec < [ Option < V > ; 16 ] > ,
233233}
234234impl < V > OutgoingMessage < V > {
235235 /// Creates a new message that is to be delivered to streams with `ids`.
236- pub fn new ( stream_ids : Vec < StreamId > , values : impl IntoIterator < Item = V > ) -> Self {
236+ pub fn new (
237+ stream_ids : impl IntoIterator < Item = StreamId > ,
238+ values : impl IntoIterator < Item = V > ,
239+ ) -> Self {
240+ let stream_ids = tinyvec:: TinyVec :: from_iter ( stream_ids. into_iter ( ) . map ( Some ) ) ;
237241 let values = tinyvec:: TinyVec :: from_iter ( values. into_iter ( ) . map ( Some ) ) ;
238- Self {
239- stream_ids,
240- value : values,
241- }
242+ Self { stream_ids, values }
242243 }
243244}
244245
Original file line number Diff line number Diff line change @@ -139,14 +139,14 @@ where
139139 }
140140
141141 fn handle_new_message ( & mut self , mut message : OutgoingMessage < Item > ) {
142- for stream_id in message. stream_ids {
142+ for stream_id in message. stream_ids . iter ( ) . cloned ( ) . flatten ( ) {
143143 match self . sender_pairs . entry ( stream_id) {
144144 Entry :: Vacant ( _) => {
145145 tracing:: warn!( stream_id, "Tring to send message to non-existent stream." ) ;
146146 }
147147 Entry :: Occupied ( mut sender_pair_entry) => {
148148 let mut should_remove = false ;
149- for value in message. value . drain ( ..) . flatten ( ) {
149+ for value in message. values . drain ( ..) . flatten ( ) {
150150 let sender_pair = sender_pair_entry. get_mut ( ) ;
151151 match sender_pair. try_send ( value. clone ( ) ) {
152152 Ok ( ( ) ) => {
You can’t perform that action at this time.
0 commit comments