mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
Add inline markers; simplify ip address conversion in request_from_bytes
This commit is contained in:
parent
4721fa3109
commit
a865f4a1ae
6 changed files with 15 additions and 6 deletions
|
|
@ -36,6 +36,7 @@ impl PeerStatus {
|
||||||
/// Determine peer status from announce event and number of bytes left.
|
/// Determine peer status from announce event and number of bytes left.
|
||||||
///
|
///
|
||||||
/// Likely, the last branch will be taken most of the time.
|
/// Likely, the last branch will be taken most of the time.
|
||||||
|
#[inline]
|
||||||
pub fn from_event_and_bytes_left(
|
pub fn from_event_and_bytes_left(
|
||||||
event: AnnounceEvent,
|
event: AnnounceEvent,
|
||||||
bytes_left: NumberOfBytes
|
bytes_left: NumberOfBytes
|
||||||
|
|
@ -62,12 +63,14 @@ pub struct Peer {
|
||||||
|
|
||||||
|
|
||||||
impl Peer {
|
impl Peer {
|
||||||
|
#[inline(always)]
|
||||||
pub fn to_response_peer(&self) -> ResponsePeer {
|
pub fn to_response_peer(&self) -> ResponsePeer {
|
||||||
ResponsePeer {
|
ResponsePeer {
|
||||||
ip_address: self.ip_address,
|
ip_address: self.ip_address,
|
||||||
port: self.port
|
port: self.port
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#[inline]
|
||||||
pub fn from_announce_and_ip(
|
pub fn from_announce_and_ip(
|
||||||
announce_request: &AnnounceRequest,
|
announce_request: &AnnounceRequest,
|
||||||
ip_address: IpAddr
|
ip_address: IpAddr
|
||||||
|
|
|
||||||
|
|
@ -214,6 +214,7 @@ pub fn extract_response_peers(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[inline(always)]
|
||||||
pub fn create_torrent_scrape_statistics(
|
pub fn create_torrent_scrape_statistics(
|
||||||
seeders: i32,
|
seeders: i32,
|
||||||
leechers: i32
|
leechers: i32
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
//! ```
|
//! ```
|
||||||
//! ## Average results over 50 rounds
|
//! ## Average results over 50 rounds
|
||||||
//!
|
//!
|
||||||
//! Connect handler: 2 514 978 requests/second, 397.87 ns/request
|
//! Connect handler: 2 519 969 requests/second, 397.36 ns/request
|
||||||
//! Announce handler: 246 744 requests/second, 4054.58 ns/request
|
//! Announce handler: 270 880 requests/second, 3691.91 ns/request
|
||||||
//! Scrape handler: 499 385 requests/second, 2007.23 ns/request
|
//! Scrape handler: 510 028 requests/second, 1961.18 ns/request
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
use crate::types;
|
use crate::types;
|
||||||
|
|
||||||
|
|
||||||
|
#[inline]
|
||||||
pub fn event_from_i32(i: i32) -> types::AnnounceEvent {
|
pub fn event_from_i32(i: i32) -> types::AnnounceEvent {
|
||||||
match i {
|
match i {
|
||||||
1 => types::AnnounceEvent::Completed,
|
1 => types::AnnounceEvent::Completed,
|
||||||
|
|
@ -11,6 +12,7 @@ pub fn event_from_i32(i: i32) -> types::AnnounceEvent {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[inline]
|
||||||
pub fn event_to_i32(event: types::AnnounceEvent) -> i32 {
|
pub fn event_to_i32(event: types::AnnounceEvent) -> i32 {
|
||||||
match event {
|
match event {
|
||||||
types::AnnounceEvent::None => 0,
|
types::AnnounceEvent::None => 0,
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ use super::common::*;
|
||||||
const MAGIC_NUMBER: i64 = 4_497_486_125_440;
|
const MAGIC_NUMBER: i64 = 4_497_486_125_440;
|
||||||
|
|
||||||
|
|
||||||
|
#[inline]
|
||||||
pub fn request_to_bytes(
|
pub fn request_to_bytes(
|
||||||
bytes: &mut impl Write,
|
bytes: &mut impl Write,
|
||||||
request: types::Request
|
request: types::Request
|
||||||
|
|
@ -60,6 +61,7 @@ pub fn request_to_bytes(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[inline]
|
||||||
pub fn request_from_bytes(
|
pub fn request_from_bytes(
|
||||||
bytes: &[u8],
|
bytes: &[u8],
|
||||||
max_scrape_torrents: u8,
|
max_scrape_torrents: u8,
|
||||||
|
|
@ -110,9 +112,8 @@ pub fn request_from_bytes(
|
||||||
|
|
||||||
let opt_ip = if ip == [0; 4] {
|
let opt_ip = if ip == [0; 4] {
|
||||||
None
|
None
|
||||||
}
|
} else {
|
||||||
else {
|
Some(Ipv4Addr::from(ip))
|
||||||
Some(Ipv4Addr::new(ip[0], ip[1], ip[2], ip[3]))
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(types::Request::Announce(types::AnnounceRequest {
|
Ok(types::Request::Announce(types::AnnounceRequest {
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ use std::net::{IpAddr, Ipv6Addr, Ipv4Addr};
|
||||||
use crate::types;
|
use crate::types;
|
||||||
|
|
||||||
|
|
||||||
|
#[inline]
|
||||||
pub fn response_to_bytes(
|
pub fn response_to_bytes(
|
||||||
bytes: &mut impl Write,
|
bytes: &mut impl Write,
|
||||||
response: types::Response,
|
response: types::Response,
|
||||||
|
|
@ -78,6 +79,7 @@ pub fn response_to_bytes(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#[inline]
|
||||||
pub fn response_from_bytes(
|
pub fn response_from_bytes(
|
||||||
bytes: &[u8],
|
bytes: &[u8],
|
||||||
ip_version: types::IpVersion,
|
ip_version: types::IpVersion,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue