Skip to content

Commit

Permalink
Update to rand 0.9
Browse files Browse the repository at this point in the history
  • Loading branch information
bluk committed Jan 30, 2025
1 parent 0efadb2 commit c1cb0bb
Show file tree
Hide file tree
Showing 6 changed files with 32 additions and 32 deletions.
6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@ version = "0.0.5"
[features]
default = ["std"]

std = ["bt_bencode/std", "gen_value/std", "serde/std", "serde_bytes/std", "bytes/std", "bitvec/std", "bitvec/atomic", "rand/std", "rand/std_rng" ]
std = ["bt_bencode/std", "gen_value/std", "serde/std", "serde_bytes/std", "bytes/std", "bitvec/std", "bitvec/atomic", "rand/std", "rand/std_rng", "rand/thread_rng" ]

alloc = ["bt_bencode/alloc", "gen_value/alloc", "serde/alloc", "serde_bytes/alloc", "bitvec/alloc", "bitvec/atomic", "rand/alloc" ]
alloc = ["bt_bencode/alloc", "gen_value/alloc", "serde/alloc", "serde_bytes/alloc", "bitvec/alloc", "bitvec/atomic", "rand/alloc", "rand/thread_rng" ]

[dependencies]
bitvec = { version = "1.0", default-features = false }
bt_bencode = { version = "0.8", default-features = false }
bytes = { version = "1.1", default-features = false }
crc32c = "0.6"
gen_value = { version = "0.7", default-features = false }
rand = { version = "0.8", default-features = false }
rand = { version = "0.9", default-features = false }
serde = { version = "1.0", default-features = false }
serde_bytes = { version = "0.11", default-features = false }
serde_derive = { version = "1.0" }
Expand Down
2 changes: 1 addition & 1 deletion src/dht/krpc/find_node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ mod tests {

let addr = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 1234);
let compact_addr = CompactAddrV4::from(addr);
let node_id = addr.ip().rand_id(None, &mut rand::thread_rng()).unwrap();
let node_id = addr.ip().rand_id(None, &mut rand::rng()).unwrap();
let mut find_node_resp = vec![];
find_node_resp.extend_from_slice(b"d1:rd2:id20:0123456789abcdefghij5:nodes26:");
find_node_resp.extend_from_slice(node_id.as_ref());
Expand Down
2 changes: 1 addition & 1 deletion src/dht/krpc/get_peers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ mod tests {

let addr = SocketAddrV4::new(Ipv4Addr::new(127, 0, 0, 1), 1234);
let compact_addr = CompactAddrV4::from(addr);
let node_id = addr.ip().rand_id(None, &mut rand::thread_rng()).unwrap();
let node_id = addr.ip().rand_id(None, &mut rand::rng()).unwrap();
let mut get_peers_resp = vec![];
get_peers_resp.extend_from_slice(b"d1:rd2:id20:0123456789abcdefghij5:nodes26:");
get_peers_resp.extend_from_slice(node_id.as_ref());
Expand Down
6 changes: 3 additions & 3 deletions src/dht/krpc/transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ impl Id {
/// # Errors
///
/// Returns an error if the random number generator cannot fill a byte array.
pub fn rand<R>(rng: &mut R) -> Result<Self, rand::Error>
pub fn rand<R>(rng: &mut R) -> Result<Self, R::Error>
where
R: rand::Rng,
R: rand::Rng + rand::TryRngCore,
{
let mut inner = [0u8; 2];
rng.try_fill(&mut inner)?;
rng.try_fill_bytes(&mut inner)?;
Ok(Self(inner))
}
}
Expand Down
44 changes: 22 additions & 22 deletions src/dht/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,12 +104,12 @@ impl Id {
/// # Errors
///
/// If the random number generator cannot fill an array with random data.
pub fn rand<R>(rng: &mut R) -> Result<Id, rand::Error>
pub fn rand<R>(rng: &mut R) -> Result<Id, R::Error>
where
R: rand::Rng,
R: rand::TryRngCore,
{
let mut arr: [u8; 20] = [0; 20];
rng.try_fill(&mut arr[..])?;
rng.try_fill_bytes(&mut arr[..])?;
Ok(Id(arr))
}
}
Expand Down Expand Up @@ -408,9 +408,9 @@ pub trait IdAllocator {
/// If the random number generator cannot fill a slice, the [`rand::Error`] will be returned.
///
/// [bep_0042]: http://bittorrent.org/beps/bep_0042.html
fn rand_id<R>(&self, rand: Option<u8>, rng: &mut R) -> Result<Id, rand::Error>
fn rand_id<R>(&self, rand: Option<u8>, rng: &mut R) -> Result<Id, R::Error>
where
R: rand::Rng;
R: rand::TryRngCore + rand::Rng;

/// Determines if an [`Id`] follows the restrictions in [BEP 42][bep_0042].
///
Expand All @@ -420,9 +420,9 @@ pub trait IdAllocator {

#[cfg(feature = "std")]
impl IdAllocator for IpAddr {
fn rand_id<R>(&self, rand: Option<u8>, rng: &mut R) -> Result<Id, rand::Error>
fn rand_id<R>(&self, rand: Option<u8>, rng: &mut R) -> Result<Id, R::Error>
where
R: rand::Rng,
R: rand::TryRngCore + rand::Rng,
{
match self {
IpAddr::V4(addr) => addr.rand_id(rand, rng),
Expand All @@ -440,16 +440,16 @@ impl IdAllocator for IpAddr {

#[cfg(feature = "std")]
impl IdAllocator for Ipv4Addr {
fn rand_id<R>(&self, rand: Option<u8>, rng: &mut R) -> Result<Id, rand::Error>
fn rand_id<R>(&self, rand: Option<u8>, rng: &mut R) -> Result<Id, R::Error>
where
R: rand::Rng,
R: rand::TryRngCore + rand::Rng,
{
let rand = rand.unwrap_or_else(|| rng.gen_range(0..8));
let rand = rand.unwrap_or_else(|| rng.random_range(0..8));
let crc32_val = self.make_crc32c(rand).to_be_bytes();
let mut id = Id::rand(rng)?;
id.0[0] = crc32_val[0];
id.0[1] = crc32_val[1];
id.0[2] = crc32_val[2] & 0xF8 | rng.gen_range(0..8);
id.0[2] = crc32_val[2] & 0xF8 | rng.random_range(0..8);
id.0[19] = rand;

Ok(id)
Expand Down Expand Up @@ -496,16 +496,16 @@ impl IdAllocator for Ipv4Addr {

#[cfg(feature = "std")]
impl IdAllocator for Ipv6Addr {
fn rand_id<R>(&self, rand: Option<u8>, rng: &mut R) -> Result<Id, rand::Error>
fn rand_id<R>(&self, rand: Option<u8>, rng: &mut R) -> Result<Id, R::Error>
where
R: rand::Rng,
R: rand::TryRngCore + rand::Rng,
{
let rand = rand.unwrap_or_else(|| rng.gen_range(0..8));
let rand = rand.unwrap_or_else(|| rng.random_range(0..8));
let crc32_val = self.make_crc32c(rand).to_be_bytes();
let mut id = Id::rand(rng)?;
id.0[0] = crc32_val[0];
id.0[1] = crc32_val[1];
id.0[2] = crc32_val[2] & 0xF8 | rng.gen_range(0..8);
id.0[2] = crc32_val[2] & 0xF8 | rng.random_range(0..8);
id.0[19] = rand;
Ok(id)
}
Expand Down Expand Up @@ -568,13 +568,13 @@ mod test {
#[allow(clippy::ignored_unit_patterns)]
#[test]
fn make_only_valid_node_ids_for_ipv4(ip in any::<Ipv4Addr>(), rand in any::<Option<u8>>()) {
assert!(ip.is_valid(ip.rand_id(rand, &mut rand::thread_rng()).unwrap()));
assert!(ip.is_valid(ip.rand_id(rand, &mut rand::rng()).unwrap()));
}

#[allow(clippy::ignored_unit_patterns)]
#[test]
fn make_only_valid_node_ids_for_ipv6(ip in any::<Ipv6Addr>(), rand in any::<Option<u8>>()) {
assert!(ip.is_valid(ip.rand_id(rand, &mut rand::thread_rng()).unwrap()));
assert!(ip.is_valid(ip.rand_id(rand, &mut rand::rng()).unwrap()));
}

#[allow(clippy::ignored_unit_patterns)]
Expand Down Expand Up @@ -608,7 +608,7 @@ mod test {
#[test]
fn test_ipv4_make_node_id_1() {
let ip = "124.31.75.21".parse::<Ipv4Addr>().unwrap();
let id = ip.rand_id(None, &mut rand::thread_rng()).unwrap();
let id = ip.rand_id(None, &mut rand::rng()).unwrap();
assert!(ip.is_valid(id));
}

Expand All @@ -626,7 +626,7 @@ mod test {
#[test]
fn test_ipv4_make_node_id_2() {
let ip = "21.75.31.124".parse::<Ipv4Addr>().unwrap();
let id = ip.rand_id(None, &mut rand::thread_rng()).unwrap();
let id = ip.rand_id(None, &mut rand::rng()).unwrap();
assert!(ip.is_valid(id));
}

Expand All @@ -644,7 +644,7 @@ mod test {
#[test]
fn test_ipv4_make_node_id_3() {
let ip = "65.23.51.170".parse::<Ipv4Addr>().unwrap();
let id = ip.rand_id(None, &mut rand::thread_rng()).unwrap();
let id = ip.rand_id(None, &mut rand::rng()).unwrap();
assert!(ip.is_valid(id));
}

Expand All @@ -662,7 +662,7 @@ mod test {
#[test]
fn test_ipv4_make_node_id_4() {
let ip = "84.124.73.14".parse::<Ipv4Addr>().unwrap();
let id = ip.rand_id(None, &mut rand::thread_rng()).unwrap();
let id = ip.rand_id(None, &mut rand::rng()).unwrap();
assert!(ip.is_valid(id));
}

Expand All @@ -680,7 +680,7 @@ mod test {
#[test]
fn test_ipv4_make_node_id_5() {
let ip = "43.213.53.83".parse::<Ipv4Addr>().unwrap();
let id = ip.rand_id(None, &mut rand::thread_rng()).unwrap();
let id = ip.rand_id(None, &mut rand::rng()).unwrap();
assert!(ip.is_valid(id));
}

Expand Down
4 changes: 2 additions & 2 deletions src/dht/routing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -381,10 +381,10 @@ mod internal {

for idx in 0..data.len() {
data[idx] = if lower_than_max {
rng.gen()
rng.random()
} else {
let idx_val = end[idx];
let val = rng.gen_range(0..=idx_val);
let val = rng.random_range(0..=idx_val);
if val < idx_val {
lower_than_max = true;
}
Expand Down

0 comments on commit c1cb0bb

Please sign in to comment.