feat(server): add try_into_parts() to conn::Connection (#1531)
This commit is contained in:
committed by
Sean McArthur
parent
c6e90b7b65
commit
c615a3242f
@@ -342,20 +342,28 @@ where
|
|||||||
/// This should only be called after `poll_without_shutdown` signals
|
/// This should only be called after `poll_without_shutdown` signals
|
||||||
/// that the connection is "done". Otherwise, it may not have finished
|
/// that the connection is "done". Otherwise, it may not have finished
|
||||||
/// flushing all necessary HTTP bytes.
|
/// flushing all necessary HTTP bytes.
|
||||||
|
///
|
||||||
|
/// # Panics
|
||||||
|
/// This method will panic if this connection is using an h2 protocol.
|
||||||
pub fn into_parts(self) -> Parts<I, S> {
|
pub fn into_parts(self) -> Parts<I, S> {
|
||||||
let (io, read_buf, dispatch) = match self.conn.unwrap() {
|
self.try_into_parts().unwrap_or_else(|| panic!("h2 cannot into_inner"))
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Return the inner IO object, and additional information, if available.
|
||||||
|
///
|
||||||
|
/// This method will return a `None` if this connection is using an h2 protocol.
|
||||||
|
pub fn try_into_parts(self) -> Option<Parts<I, S>> {
|
||||||
|
match self.conn.unwrap() {
|
||||||
Either::A(h1) => {
|
Either::A(h1) => {
|
||||||
h1.into_inner()
|
let (io, read_buf, dispatch) = h1.into_inner();
|
||||||
|
Some(Parts {
|
||||||
|
io: io,
|
||||||
|
read_buf: read_buf,
|
||||||
|
service: dispatch.into_service(),
|
||||||
|
_inner: (),
|
||||||
|
})
|
||||||
},
|
},
|
||||||
Either::B(_h2) => {
|
Either::B(_h2) => None,
|
||||||
panic!("h2 cannot into_inner");
|
|
||||||
}
|
|
||||||
};
|
|
||||||
Parts {
|
|
||||||
io: io,
|
|
||||||
read_buf: read_buf,
|
|
||||||
service: dispatch.into_service(),
|
|
||||||
_inner: (),
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user