style(http): Rustfmt State.update
This commit is contained in:
		| @@ -669,13 +669,22 @@ impl<H: MessageHandler<T>, T: Transport> fmt::Debug for State<H, T> { | ||||
| } | ||||
|  | ||||
| impl<H: MessageHandler<T>, T: Transport> State<H, T> { | ||||
|     fn update<F, K>(&mut self, next: Next, factory: &F) where F: MessageHandlerFactory<K, T>, K: Key { | ||||
|     fn update<F, K>(&mut self, next: Next, factory: &F) | ||||
|             where F: MessageHandlerFactory<K, T>, | ||||
|                   K: Key | ||||
|         { | ||||
|             let timeout = next.timeout; | ||||
|             let state = mem::replace(self, State::Closed); | ||||
|             match (state, next.interest) { | ||||
|             (_, Next_::Remove) | (State::Closed, _) => return, // Keep State::Closed. | ||||
|             (State::Init { .. }, e) => | ||||
|             { mem::replace(self, State::Init { interest: e, timeout: timeout} ); }, | ||||
|                 (_, Next_::Remove) | | ||||
|                 (State::Closed, _) => return, // Keep State::Closed. | ||||
|                 (State::Init { .. }, e) => { | ||||
|                     mem::replace(self, | ||||
|                                  State::Init { | ||||
|                                      interest: e, | ||||
|                                      timeout: timeout, | ||||
|                                  }); | ||||
|                 } | ||||
|                 (State::Http1(mut http1), next_) => { | ||||
|                     match next_ { | ||||
|                         Next_::Remove => unreachable!(), // Covered in (_, Next_::Remove) case above. | ||||
| @@ -688,13 +697,14 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> { | ||||
|                                     } else { | ||||
|                                         Reading::Closed | ||||
|                                     } | ||||
|                             }, | ||||
|                                 } | ||||
|                                 Reading::KeepAlive => http1.reading, | ||||
|                                 _ => Reading::Closed, | ||||
|                             }; | ||||
|                             let mut writing = Writing::Closed; | ||||
|                             let encoder = match http1.writing { | ||||
|                             Writing::Wait(enc) | Writing::Ready(enc) => Some(enc), | ||||
|                                 Writing::Wait(enc) | | ||||
|                                 Writing::Ready(enc) => Some(enc), | ||||
|                                 Writing::Chunk(mut chunk) => { | ||||
|                                     if chunk.is_written() { | ||||
|                                         Some(chunk.next.0) | ||||
| @@ -703,17 +713,19 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> { | ||||
|                                         writing = Writing::Chunk(chunk); | ||||
|                                         None | ||||
|                                     } | ||||
|                             }, | ||||
|                             _ => return // Keep State::Closed. | ||||
|                                 } | ||||
|                                 _ => return, // Keep State::Closed. | ||||
|                             }; | ||||
|                             if let Some(encoder) = encoder { | ||||
|                                 if encoder.is_eof() { | ||||
|                                 if http1.keep_alive { writing = Writing::KeepAlive } | ||||
|                                     if http1.keep_alive { | ||||
|                                         writing = Writing::KeepAlive | ||||
|                                     } | ||||
|                                 } else if let Some(buf) = encoder.finish() { | ||||
|                                     writing = Writing::Chunk(Chunk { | ||||
|                                         buf: buf.bytes, | ||||
|                                         pos: buf.pos, | ||||
|                                     next: (h1::Encoder::length(0), Next::end()) | ||||
|                                         next: (h1::Encoder::length(0), Next::end()), | ||||
|                                     }) | ||||
|                                 } | ||||
|                             }; | ||||
| @@ -721,24 +733,25 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> { | ||||
|                             match (reading, writing) { | ||||
|                                 (Reading::KeepAlive, Writing::KeepAlive) => { | ||||
|                                     let next = factory.keep_alive_interest(); | ||||
|                                 mem::replace(self, State::Init { | ||||
|                                     mem::replace(self, | ||||
|                                                  State::Init { | ||||
|                                                      interest: next.interest, | ||||
|                                                      timeout: next.timeout, | ||||
|                                                  }); | ||||
|                                     return; | ||||
|                             }, | ||||
|                                 } | ||||
|                                 (reading, Writing::Chunk(chunk)) => { | ||||
|                                     http1.reading = reading; | ||||
|                                     http1.writing = Writing::Chunk(chunk); | ||||
|                                 } | ||||
|                             _ => return // Keep State::Closed. | ||||
|                                 _ => return, // Keep State::Closed. | ||||
|                             } | ||||
|                         } | ||||
|                 }, | ||||
|                         Next_::Read => { | ||||
|                             http1.reading = match http1.reading { | ||||
|                                 Reading::Init => Reading::Parse, | ||||
|                                 Reading::Wait(decoder) => Reading::Body(decoder), | ||||
|                     same => same | ||||
|                                 same => same, | ||||
|                             }; | ||||
|  | ||||
|                             http1.writing = match http1.writing { | ||||
| @@ -754,7 +767,7 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> { | ||||
|                                             Writing::Chunk(Chunk { | ||||
|                                                 buf: buf.bytes, | ||||
|                                                 pos: buf.pos, | ||||
|                                     next: (h1::Encoder::length(0), Next::wait()) | ||||
|                                                 next: (h1::Encoder::length(0), Next::wait()), | ||||
|                                             }) | ||||
|                                         } else { | ||||
|                                             Writing::Closed | ||||
| @@ -762,29 +775,34 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> { | ||||
|                                     } else { | ||||
|                                         Writing::Wait(encoder) | ||||
|                                     } | ||||
|                     }, | ||||
|                     Writing::Chunk(chunk) => if chunk.is_written() { | ||||
|                                 } | ||||
|                                 Writing::Chunk(chunk) => { | ||||
|                                     if chunk.is_written() { | ||||
|                                         Writing::Wait(chunk.next.0) | ||||
|                                     } else { | ||||
|                                         Writing::Chunk(chunk) | ||||
|                     }, | ||||
|                     same => same | ||||
|                                     } | ||||
|                                 } | ||||
|                                 same => same, | ||||
|                             }; | ||||
|             }, | ||||
|                         } | ||||
|                         Next_::Write => { | ||||
|                             http1.writing = match http1.writing { | ||||
|                                 Writing::Wait(encoder) => Writing::Ready(encoder), | ||||
|                                 Writing::Init => Writing::Head, | ||||
|                     Writing::Chunk(chunk) => if chunk.is_written() { | ||||
|                                 Writing::Chunk(chunk) => { | ||||
|                                     if chunk.is_written() { | ||||
|                                         Writing::Ready(chunk.next.0) | ||||
|                                     } else { | ||||
|                                         Writing::Chunk(chunk) | ||||
|                     }, | ||||
|                     same => same | ||||
|                                     } | ||||
|                                 } | ||||
|                                 same => same, | ||||
|                             }; | ||||
|  | ||||
|                             http1.reading = match http1.reading { | ||||
|                     Reading::Body(decoder) => if decoder.is_eof() { | ||||
|                                 Reading::Body(decoder) => { | ||||
|                                     if decoder.is_eof() { | ||||
|                                         if http1.keep_alive { | ||||
|                                             Reading::KeepAlive | ||||
|                                         } else { | ||||
| @@ -792,41 +810,46 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> { | ||||
|                                         } | ||||
|                                     } else { | ||||
|                                         Reading::Wait(decoder) | ||||
|                     }, | ||||
|                     same => same | ||||
|                                     } | ||||
|                                 } | ||||
|                                 same => same, | ||||
|                             }; | ||||
|             }, | ||||
|                         } | ||||
|                         Next_::ReadWrite => { | ||||
|                             http1.reading = match http1.reading { | ||||
|                                 Reading::Init => Reading::Parse, | ||||
|                                 Reading::Wait(decoder) => Reading::Body(decoder), | ||||
|                     same => same | ||||
|                                 same => same, | ||||
|                             }; | ||||
|                             http1.writing = match http1.writing { | ||||
|                                 Writing::Wait(encoder) => Writing::Ready(encoder), | ||||
|                                 Writing::Init => Writing::Head, | ||||
|                     Writing::Chunk(chunk) => if chunk.is_written() { | ||||
|                                 Writing::Chunk(chunk) => { | ||||
|                                     if chunk.is_written() { | ||||
|                                         Writing::Ready(chunk.next.0) | ||||
|                                     } else { | ||||
|                                         Writing::Chunk(chunk) | ||||
|                     }, | ||||
|                     same => same | ||||
|                                     } | ||||
|                                 } | ||||
|                                 same => same, | ||||
|                             }; | ||||
|             }, | ||||
|                         } | ||||
|                         Next_::Wait => { | ||||
|                             http1.reading = match http1.reading { | ||||
|                                 Reading::Body(decoder) => Reading::Wait(decoder), | ||||
|                     same => same | ||||
|                                 same => same, | ||||
|                             }; | ||||
|  | ||||
|                             http1.writing = match http1.writing { | ||||
|                                 Writing::Ready(encoder) => Writing::Wait(encoder), | ||||
|                     Writing::Chunk(chunk) => if chunk.is_written() { | ||||
|                                 Writing::Chunk(chunk) => { | ||||
|                                     if chunk.is_written() { | ||||
|                                         Writing::Wait(chunk.next.0) | ||||
|                                     } else { | ||||
|                                         Writing::Chunk(chunk) | ||||
|                     }, | ||||
|                     same => same | ||||
|                                     } | ||||
|                                 } | ||||
|                                 same => same, | ||||
|                             }; | ||||
|                         } | ||||
|                     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user