style(http): Rustfmt State.update

This commit is contained in:
leonardo.yvens
2016-07-27 10:36:38 -03:00
parent 9f249bbee8
commit 211b408b92

View File

@@ -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,
};
}
}