mirror of https://github.com/rapiz1/rathole.git
chore: clean up
This commit is contained in:
parent
95efd457d5
commit
720778b07c
|
@ -1,9 +1,4 @@
|
|||
use std::{
|
||||
collections::hash_map::DefaultHasher,
|
||||
hash::{Hash, Hasher},
|
||||
net::SocketAddr,
|
||||
time::Duration,
|
||||
};
|
||||
use std::{net::SocketAddr, time::Duration};
|
||||
|
||||
use anyhow::{anyhow, Result};
|
||||
use socket2::{SockRef, TcpKeepalive};
|
||||
|
@ -56,71 +51,3 @@ pub async fn udp_connect<A: ToSocketAddrs>(addr: A) -> Result<UdpSocket> {
|
|||
s.connect(addr).await?;
|
||||
Ok(s)
|
||||
}
|
||||
|
||||
// FIXME: These functions are for the load balance for UDP. But not used for now.
|
||||
#[allow(dead_code)]
|
||||
pub fn hash_socket_addr(a: &SocketAddr) -> u64 {
|
||||
let mut hasher = DefaultHasher::new();
|
||||
a.hash(&mut hasher);
|
||||
hasher.finish()
|
||||
}
|
||||
|
||||
// Wait for the stabilization of https://doc.rust-lang.org/std/primitive.i64.html#method.log2
|
||||
#[allow(dead_code)]
|
||||
fn log2_floor(x: usize) -> u8 {
|
||||
(x as f64).log2().floor() as u8
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub fn floor_to_pow_of_2(x: usize) -> usize {
|
||||
if x == 1 {
|
||||
return 1;
|
||||
}
|
||||
let w = log2_floor(x);
|
||||
1 << w
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use crate::helper::{floor_to_pow_of_2, log2_floor};
|
||||
|
||||
#[test]
|
||||
fn test_log2_floor() {
|
||||
let t = [
|
||||
(2, 1),
|
||||
(3, 1),
|
||||
(4, 2),
|
||||
(8, 3),
|
||||
(9, 3),
|
||||
(15, 3),
|
||||
(16, 4),
|
||||
(1023, 9),
|
||||
(1024, 10),
|
||||
(2000, 10),
|
||||
(2048, 11),
|
||||
];
|
||||
for t in t {
|
||||
assert_eq!(log2_floor(t.0), t.1);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_floor_to_pow_of_2() {
|
||||
let t = [
|
||||
(1 as usize, 1 as usize),
|
||||
(2, 2),
|
||||
(3, 2),
|
||||
(4, 4),
|
||||
(5, 4),
|
||||
(15, 8),
|
||||
(31, 16),
|
||||
(33, 32),
|
||||
(1000, 512),
|
||||
(1500, 1024),
|
||||
(2300, 2048),
|
||||
];
|
||||
for t in t {
|
||||
assert_eq!(floor_to_pow_of_2(t.0), t.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue