diff --git a/aquatic_ws/src/lib/common.rs b/aquatic_ws/src/lib/common.rs index a1b14e4..1ed1d09 100644 --- a/aquatic_ws/src/lib/common.rs +++ b/aquatic_ws/src/lib/common.rs @@ -69,6 +69,7 @@ pub struct TorrentData { impl Default for TorrentData { + #[inline] fn default() -> Self { Self { peers: IndexMap::new(), @@ -109,6 +110,8 @@ impl OutMessageSender { pub fn new(senders: Vec>) -> Self { Self(senders) } + + #[inline] pub fn send( &self, meta: ConnectionMeta, diff --git a/aquatic_ws/src/lib/network/common.rs b/aquatic_ws/src/lib/network/common.rs index da42fba..cc198fa 100644 --- a/aquatic_ws/src/lib/network/common.rs +++ b/aquatic_ws/src/lib/network/common.rs @@ -37,6 +37,7 @@ pub enum Stream { impl Stream { + #[inline] pub fn get_peer_addr(&self) -> SocketAddr { match self { Self::TcpStream(stream) => stream.peer_addr().unwrap(), @@ -47,6 +48,7 @@ impl Stream { impl Read for Stream { + #[inline] fn read(&mut self, buf: &mut [u8]) -> Result { match self { Self::TcpStream(stream) => stream.read(buf), @@ -57,6 +59,7 @@ impl Read for Stream { impl Write for Stream { + #[inline] fn write(&mut self, buf: &[u8]) -> ::std::io::Result { match self { Self::TcpStream(stream) => stream.write(buf), @@ -64,6 +67,7 @@ impl Write for Stream { } } + #[inline] fn flush(&mut self) -> ::std::io::Result<()> { match self { Self::TcpStream(stream) => stream.flush(), @@ -82,10 +86,12 @@ pub enum HandshakeMachine { impl HandshakeMachine { + #[inline] pub fn new(tcp_stream: TcpStream) -> Self { Self::TcpStream(tcp_stream) } + #[inline] pub fn advance( self, opt_tls_acceptor: &Option, // If set, run TLS @@ -122,6 +128,7 @@ impl HandshakeMachine { } } + #[inline] fn handle_tls_handshake_result( result: Result, ::native_tls::HandshakeError>, ) -> (Option>, bool) { @@ -144,6 +151,7 @@ impl HandshakeMachine { } } + #[inline] fn handle_ws_handshake_result( result: Result, HandshakeError>> , ) -> (Option>, bool) { @@ -190,6 +198,7 @@ pub struct Connection { /// Create from TcpStream. Run `advance_handshakes` until `get_established_ws` /// returns Some(EstablishedWs). impl Connection { + #[inline] pub fn new( valid_until: ValidUntil, tcp_stream: TcpStream, @@ -200,6 +209,7 @@ impl Connection { } } + #[inline] pub fn get_established_ws<'a>(&mut self) -> Option<&mut EstablishedWs> { match self.inner { Either::Left(ref mut ews) => Some(ews), @@ -207,6 +217,7 @@ impl Connection { } } + #[inline] pub fn advance_handshakes( self, opt_tls_acceptor: &Option, @@ -227,6 +238,7 @@ impl Connection { } } + #[inline] pub fn close(&mut self){ if let Either::Left(ref mut ews) = self.inner { if ews.ws.can_read(){ diff --git a/aquatic_ws/src/lib/protocol/mod.rs b/aquatic_ws/src/lib/protocol/mod.rs index 316d1bd..21997a8 100644 --- a/aquatic_ws/src/lib/protocol/mod.rs +++ b/aquatic_ws/src/lib/protocol/mod.rs @@ -192,12 +192,14 @@ struct ActionWrapper { impl ActionWrapper { + #[inline] pub fn announce(t: T) -> Self { Self { action: Action::Announce, inner: t } } + #[inline] pub fn scrape(t: T) -> Self { Self { action: Action::Scrape, @@ -217,6 +219,7 @@ pub enum InMessage { impl InMessage { /// Try parsing as announce request first. If that fails, try parsing as /// scrape request, or return None + #[inline] pub fn from_ws_message(ws_message: tungstenite::Message) -> Option { use tungstenite::Message::{Text, Binary}; @@ -255,6 +258,7 @@ pub enum OutMessage { impl OutMessage { + #[inline] pub fn to_ws_message(self) -> tungstenite::Message { let json = match self { Self::AnnounceResponse(message) => { diff --git a/aquatic_ws/src/lib/protocol/serde_helpers.rs b/aquatic_ws/src/lib/protocol/serde_helpers.rs index 1f5471f..f7cea32 100644 --- a/aquatic_ws/src/lib/protocol/serde_helpers.rs +++ b/aquatic_ws/src/lib/protocol/serde_helpers.rs @@ -22,6 +22,7 @@ impl<'de> Visitor<'de> for TwentyByteVisitor { formatter.write_str("string consisting of 20 bytes") } + #[inline] fn visit_str(self, value: &str) -> Result where E: ::serde::de::Error, { @@ -60,6 +61,7 @@ impl<'de> Visitor<'de> for TwentyByteVisitor { } +#[inline] pub fn deserialize_20_bytes<'de, D>( deserializer: D ) -> Result<[u8; 20], D::Error> @@ -79,6 +81,7 @@ impl<'de> Visitor<'de> for InfoHashVecVisitor { formatter.write_str("string or array of strings consisting of 20 bytes") } + #[inline] fn visit_str(self, value: &str) -> Result where E: ::serde::de::Error, { @@ -88,6 +91,7 @@ impl<'de> Visitor<'de> for InfoHashVecVisitor { } } + #[inline] fn visit_seq(self, mut seq: A) -> Result where A: SeqAccess<'de> { @@ -104,6 +108,7 @@ impl<'de> Visitor<'de> for InfoHashVecVisitor { Ok(info_hashes) } + #[inline] fn visit_none(self) -> Result where E: ::serde::de::Error { @@ -114,6 +119,7 @@ impl<'de> Visitor<'de> for InfoHashVecVisitor { /// Empty vector is returned if value is null or any invalid info hash /// is present +#[inline] pub fn deserialize_info_hashes<'de, D>( deserializer: D ) -> Result, D::Error>