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> {
|
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 timeout = next.timeout;
|
||||||
let state = mem::replace(self, State::Closed);
|
let state = mem::replace(self, State::Closed);
|
||||||
match (state, next.interest) {
|
match (state, next.interest) {
|
||||||
(_, Next_::Remove) | (State::Closed, _) => return, // Keep State::Closed.
|
(_, Next_::Remove) |
|
||||||
(State::Init { .. }, e) =>
|
(State::Closed, _) => return, // Keep State::Closed.
|
||||||
{ mem::replace(self, State::Init { interest: e, timeout: timeout} ); },
|
(State::Init { .. }, e) => {
|
||||||
|
mem::replace(self,
|
||||||
|
State::Init {
|
||||||
|
interest: e,
|
||||||
|
timeout: timeout,
|
||||||
|
});
|
||||||
|
}
|
||||||
(State::Http1(mut http1), next_) => {
|
(State::Http1(mut http1), next_) => {
|
||||||
match next_ {
|
match next_ {
|
||||||
Next_::Remove => unreachable!(), // Covered in (_, Next_::Remove) case above.
|
Next_::Remove => unreachable!(), // Covered in (_, Next_::Remove) case above.
|
||||||
@@ -688,13 +697,14 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> {
|
|||||||
} else {
|
} else {
|
||||||
Reading::Closed
|
Reading::Closed
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
Reading::KeepAlive => http1.reading,
|
Reading::KeepAlive => http1.reading,
|
||||||
_ => Reading::Closed,
|
_ => Reading::Closed,
|
||||||
};
|
};
|
||||||
let mut writing = Writing::Closed;
|
let mut writing = Writing::Closed;
|
||||||
let encoder = match http1.writing {
|
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) => {
|
Writing::Chunk(mut chunk) => {
|
||||||
if chunk.is_written() {
|
if chunk.is_written() {
|
||||||
Some(chunk.next.0)
|
Some(chunk.next.0)
|
||||||
@@ -703,17 +713,19 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> {
|
|||||||
writing = Writing::Chunk(chunk);
|
writing = Writing::Chunk(chunk);
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
_ => return // Keep State::Closed.
|
_ => return, // Keep State::Closed.
|
||||||
};
|
};
|
||||||
if let Some(encoder) = encoder {
|
if let Some(encoder) = encoder {
|
||||||
if encoder.is_eof() {
|
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() {
|
} else if let Some(buf) = encoder.finish() {
|
||||||
writing = Writing::Chunk(Chunk {
|
writing = Writing::Chunk(Chunk {
|
||||||
buf: buf.bytes,
|
buf: buf.bytes,
|
||||||
pos: buf.pos,
|
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) {
|
match (reading, writing) {
|
||||||
(Reading::KeepAlive, Writing::KeepAlive) => {
|
(Reading::KeepAlive, Writing::KeepAlive) => {
|
||||||
let next = factory.keep_alive_interest();
|
let next = factory.keep_alive_interest();
|
||||||
mem::replace(self, State::Init {
|
mem::replace(self,
|
||||||
|
State::Init {
|
||||||
interest: next.interest,
|
interest: next.interest,
|
||||||
timeout: next.timeout,
|
timeout: next.timeout,
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
},
|
}
|
||||||
(reading, Writing::Chunk(chunk)) => {
|
(reading, Writing::Chunk(chunk)) => {
|
||||||
http1.reading = reading;
|
http1.reading = reading;
|
||||||
http1.writing = Writing::Chunk(chunk);
|
http1.writing = Writing::Chunk(chunk);
|
||||||
}
|
}
|
||||||
_ => return // Keep State::Closed.
|
_ => return, // Keep State::Closed.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
Next_::Read => {
|
Next_::Read => {
|
||||||
http1.reading = match http1.reading {
|
http1.reading = match http1.reading {
|
||||||
Reading::Init => Reading::Parse,
|
Reading::Init => Reading::Parse,
|
||||||
Reading::Wait(decoder) => Reading::Body(decoder),
|
Reading::Wait(decoder) => Reading::Body(decoder),
|
||||||
same => same
|
same => same,
|
||||||
};
|
};
|
||||||
|
|
||||||
http1.writing = match http1.writing {
|
http1.writing = match http1.writing {
|
||||||
@@ -754,7 +767,7 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> {
|
|||||||
Writing::Chunk(Chunk {
|
Writing::Chunk(Chunk {
|
||||||
buf: buf.bytes,
|
buf: buf.bytes,
|
||||||
pos: buf.pos,
|
pos: buf.pos,
|
||||||
next: (h1::Encoder::length(0), Next::wait())
|
next: (h1::Encoder::length(0), Next::wait()),
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
Writing::Closed
|
Writing::Closed
|
||||||
@@ -762,29 +775,34 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> {
|
|||||||
} else {
|
} else {
|
||||||
Writing::Wait(encoder)
|
Writing::Wait(encoder)
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
Writing::Chunk(chunk) => if chunk.is_written() {
|
Writing::Chunk(chunk) => {
|
||||||
|
if chunk.is_written() {
|
||||||
Writing::Wait(chunk.next.0)
|
Writing::Wait(chunk.next.0)
|
||||||
} else {
|
} else {
|
||||||
Writing::Chunk(chunk)
|
Writing::Chunk(chunk)
|
||||||
},
|
}
|
||||||
same => same
|
}
|
||||||
|
same => same,
|
||||||
};
|
};
|
||||||
},
|
}
|
||||||
Next_::Write => {
|
Next_::Write => {
|
||||||
http1.writing = match http1.writing {
|
http1.writing = match http1.writing {
|
||||||
Writing::Wait(encoder) => Writing::Ready(encoder),
|
Writing::Wait(encoder) => Writing::Ready(encoder),
|
||||||
Writing::Init => Writing::Head,
|
Writing::Init => Writing::Head,
|
||||||
Writing::Chunk(chunk) => if chunk.is_written() {
|
Writing::Chunk(chunk) => {
|
||||||
|
if chunk.is_written() {
|
||||||
Writing::Ready(chunk.next.0)
|
Writing::Ready(chunk.next.0)
|
||||||
} else {
|
} else {
|
||||||
Writing::Chunk(chunk)
|
Writing::Chunk(chunk)
|
||||||
},
|
}
|
||||||
same => same
|
}
|
||||||
|
same => same,
|
||||||
};
|
};
|
||||||
|
|
||||||
http1.reading = match http1.reading {
|
http1.reading = match http1.reading {
|
||||||
Reading::Body(decoder) => if decoder.is_eof() {
|
Reading::Body(decoder) => {
|
||||||
|
if decoder.is_eof() {
|
||||||
if http1.keep_alive {
|
if http1.keep_alive {
|
||||||
Reading::KeepAlive
|
Reading::KeepAlive
|
||||||
} else {
|
} else {
|
||||||
@@ -792,41 +810,46 @@ impl<H: MessageHandler<T>, T: Transport> State<H, T> {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Reading::Wait(decoder)
|
Reading::Wait(decoder)
|
||||||
},
|
}
|
||||||
same => same
|
}
|
||||||
|
same => same,
|
||||||
};
|
};
|
||||||
},
|
}
|
||||||
Next_::ReadWrite => {
|
Next_::ReadWrite => {
|
||||||
http1.reading = match http1.reading {
|
http1.reading = match http1.reading {
|
||||||
Reading::Init => Reading::Parse,
|
Reading::Init => Reading::Parse,
|
||||||
Reading::Wait(decoder) => Reading::Body(decoder),
|
Reading::Wait(decoder) => Reading::Body(decoder),
|
||||||
same => same
|
same => same,
|
||||||
};
|
};
|
||||||
http1.writing = match http1.writing {
|
http1.writing = match http1.writing {
|
||||||
Writing::Wait(encoder) => Writing::Ready(encoder),
|
Writing::Wait(encoder) => Writing::Ready(encoder),
|
||||||
Writing::Init => Writing::Head,
|
Writing::Init => Writing::Head,
|
||||||
Writing::Chunk(chunk) => if chunk.is_written() {
|
Writing::Chunk(chunk) => {
|
||||||
|
if chunk.is_written() {
|
||||||
Writing::Ready(chunk.next.0)
|
Writing::Ready(chunk.next.0)
|
||||||
} else {
|
} else {
|
||||||
Writing::Chunk(chunk)
|
Writing::Chunk(chunk)
|
||||||
},
|
}
|
||||||
same => same
|
}
|
||||||
|
same => same,
|
||||||
};
|
};
|
||||||
},
|
}
|
||||||
Next_::Wait => {
|
Next_::Wait => {
|
||||||
http1.reading = match http1.reading {
|
http1.reading = match http1.reading {
|
||||||
Reading::Body(decoder) => Reading::Wait(decoder),
|
Reading::Body(decoder) => Reading::Wait(decoder),
|
||||||
same => same
|
same => same,
|
||||||
};
|
};
|
||||||
|
|
||||||
http1.writing = match http1.writing {
|
http1.writing = match http1.writing {
|
||||||
Writing::Ready(encoder) => Writing::Wait(encoder),
|
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)
|
Writing::Wait(chunk.next.0)
|
||||||
} else {
|
} else {
|
||||||
Writing::Chunk(chunk)
|
Writing::Chunk(chunk)
|
||||||
},
|
}
|
||||||
same => same
|
}
|
||||||
|
same => same,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user