Make some functions less-generic to reduce binary bloat (#503)
* refactor: Extract FramedWrite::buffer to a less generic function Should cut out another 23 KiB (since I see it duplicated) * refactor: Extract some duplicated code to a function * refactor: Extract part of flush into a less generic function * refactor: Extract a less generic part of connection * refactor: Factor out a less generic part of Connection::poll2 * refactor: Extract a non-generic part of handshake2 * refactor: Don't duplicate Streams code on Peer (-3.5%) The `P: Peer` parameter is rarely used and there is already a mechanism for using it dynamically. * refactor: Make recv_frame less generic (-2.3%) * Move out part of Connection::poll * refactor: Extract parts of Connection * refactor: Extract a non-generic part of reclaim_frame * comments
This commit is contained in:
committed by
GitHub
parent
6357e3256a
commit
30ca832790
@@ -1124,6 +1124,20 @@ where
|
||||
|
||||
// ===== impl Connection =====
|
||||
|
||||
async fn bind_connection<T>(io: &mut T) -> Result<(), crate::Error>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite + Unpin,
|
||||
{
|
||||
tracing::debug!("binding client connection");
|
||||
|
||||
let msg: &'static [u8] = b"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n";
|
||||
io.write_all(msg).await.map_err(crate::Error::from_io)?;
|
||||
|
||||
tracing::debug!("client connection bound");
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
impl<T, B> Connection<T, B>
|
||||
where
|
||||
T: AsyncRead + AsyncWrite + Unpin,
|
||||
@@ -1133,12 +1147,7 @@ where
|
||||
mut io: T,
|
||||
builder: Builder,
|
||||
) -> Result<(SendRequest<B>, Connection<T, B>), crate::Error> {
|
||||
tracing::debug!("binding client connection");
|
||||
|
||||
let msg: &'static [u8] = b"PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n";
|
||||
io.write_all(msg).await.map_err(crate::Error::from_io)?;
|
||||
|
||||
tracing::debug!("client connection bound");
|
||||
bind_connection(&mut io).await?;
|
||||
|
||||
// Create the codec
|
||||
let mut codec = Codec::new(io);
|
||||
|
||||
Reference in New Issue
Block a user