mirror of
https://github.com/nushell/nushell.git
synced 2025-05-05 15:32:56 +00:00
Update rand and rand_chacha to 0.9 (#15463)
# Description As description, I think it's worth to move forward to update rand and rand_chacha to 0.9. # User-Facing Changes Hopefully none # Tests + Formatting NaN # After Submitting NaN
This commit is contained in:
parent
6c0b65b570
commit
f39e5b3f37
4
Cargo.lock
generated
4
Cargo.lock
generated
@ -3702,8 +3702,8 @@ dependencies = [
|
||||
"print-positions",
|
||||
"procfs",
|
||||
"quick-xml 0.37.1",
|
||||
"rand 0.8.5",
|
||||
"rand_chacha 0.3.1",
|
||||
"rand 0.9.0",
|
||||
"rand_chacha 0.9.0",
|
||||
"rayon",
|
||||
"rmp",
|
||||
"roxmltree",
|
||||
|
@ -135,9 +135,9 @@ quick-xml = "0.37.0"
|
||||
quickcheck = "1.0"
|
||||
quickcheck_macros = "1.0"
|
||||
quote = "1.0"
|
||||
rand = "0.8"
|
||||
rand = "0.9"
|
||||
getrandom = "0.2" # pick same version that rand requires
|
||||
rand_chacha = "0.3.1"
|
||||
rand_chacha = "0.9"
|
||||
ratatui = "0.29"
|
||||
rayon = "1.10"
|
||||
reedline = "0.39.0"
|
||||
|
@ -1,5 +1,5 @@
|
||||
use nu_engine::command_prelude::*;
|
||||
use rand::{prelude::SliceRandom, thread_rng};
|
||||
use rand::{prelude::SliceRandom, rng};
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Shuffle;
|
||||
@ -31,7 +31,7 @@ impl Command for Shuffle {
|
||||
) -> Result<PipelineData, ShellError> {
|
||||
let metadata = input.metadata();
|
||||
let mut values = input.into_iter_strict(call.head)?.collect::<Vec<_>>();
|
||||
values.shuffle(&mut thread_rng());
|
||||
values.shuffle(&mut rng());
|
||||
let iter = values.into_iter();
|
||||
Ok(iter.into_pipeline_data_with_metadata(
|
||||
call.head,
|
||||
|
@ -1,6 +1,5 @@
|
||||
use nu_engine::command_prelude::*;
|
||||
|
||||
use rand::prelude::{thread_rng, Rng};
|
||||
use rand::random_bool;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct RandomBool;
|
||||
@ -77,8 +76,7 @@ fn bool(
|
||||
}
|
||||
}
|
||||
|
||||
let mut rng = thread_rng();
|
||||
let bool_result: bool = rng.gen_bool(probability);
|
||||
let bool_result: bool = random_bool(probability);
|
||||
|
||||
Ok(PipelineData::Value(Value::bool(bool_result, span), None))
|
||||
}
|
||||
|
@ -1,8 +1,8 @@
|
||||
use nu_engine::command_prelude::*;
|
||||
use nu_protocol::Signals;
|
||||
use rand::{
|
||||
distributions::{Alphanumeric, Standard},
|
||||
thread_rng, Rng,
|
||||
distr::{Alphanumeric, StandardUniform},
|
||||
rng, Rng,
|
||||
};
|
||||
|
||||
pub(super) enum RandomDistribution {
|
||||
@ -31,9 +31,9 @@ pub(super) fn random_byte_stream(
|
||||
|
||||
let bytes_to_write = std::cmp::min(remaining_bytes, OUTPUT_CHUNK_SIZE);
|
||||
|
||||
let rng = thread_rng();
|
||||
let rng = rng();
|
||||
let byte_iter: Box<dyn Iterator<Item = u8>> = match distribution {
|
||||
RandomDistribution::Binary => Box::new(rng.sample_iter(Standard)),
|
||||
RandomDistribution::Binary => Box::new(rng.sample_iter(StandardUniform)),
|
||||
RandomDistribution::Alphanumeric => Box::new(rng.sample_iter(Alphanumeric)),
|
||||
};
|
||||
out.extend(byte_iter.take(bytes_to_write));
|
||||
|
@ -1,6 +1,6 @@
|
||||
use nu_engine::command_prelude::*;
|
||||
use nu_protocol::ListStream;
|
||||
use rand::prelude::{thread_rng, Rng};
|
||||
use rand::random_range;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct RandomDice;
|
||||
@ -73,10 +73,7 @@ fn dice(
|
||||
let dice: usize = call.get_flag(engine_state, stack, "dice")?.unwrap_or(1);
|
||||
let sides: usize = call.get_flag(engine_state, stack, "sides")?.unwrap_or(6);
|
||||
|
||||
let iter = (0..dice).map(move |_| {
|
||||
let mut thread_rng = thread_rng();
|
||||
Value::int(thread_rng.gen_range(1..sides + 1) as i64, span)
|
||||
});
|
||||
let iter = (0..dice).map(move |_| Value::int(random_range(1..sides + 1) as i64, span));
|
||||
|
||||
Ok(ListStream::new(iter, span, engine_state.signals().clone()).into())
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
use nu_engine::command_prelude::*;
|
||||
use nu_protocol::{FloatRange, Range};
|
||||
use rand::prelude::{thread_rng, Rng};
|
||||
use rand::random_range;
|
||||
use std::ops::Bound;
|
||||
|
||||
#[derive(Clone)]
|
||||
@ -71,8 +71,6 @@ fn float(
|
||||
let span = call.head;
|
||||
let range: Option<Spanned<Range>> = call.opt(engine_state, stack, 0)?;
|
||||
|
||||
let mut thread_rng = thread_rng();
|
||||
|
||||
match range {
|
||||
Some(range) => {
|
||||
let range_span = range.span;
|
||||
@ -90,15 +88,15 @@ fn float(
|
||||
}
|
||||
|
||||
let value = match range.end() {
|
||||
Bound::Included(end) => thread_rng.gen_range(range.start()..=end),
|
||||
Bound::Excluded(end) => thread_rng.gen_range(range.start()..end),
|
||||
Bound::Unbounded => thread_rng.gen_range(range.start()..f64::INFINITY),
|
||||
Bound::Included(end) => random_range(range.start()..=end),
|
||||
Bound::Excluded(end) => random_range(range.start()..end),
|
||||
Bound::Unbounded => random_range(range.start()..f64::INFINITY),
|
||||
};
|
||||
|
||||
Ok(PipelineData::Value(Value::float(value, span), None))
|
||||
}
|
||||
None => Ok(PipelineData::Value(
|
||||
Value::float(thread_rng.gen_range(0.0..1.0), span),
|
||||
Value::float(random_range(0.0..1.0), span),
|
||||
None,
|
||||
)),
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
use nu_engine::command_prelude::*;
|
||||
use nu_protocol::Range;
|
||||
use rand::prelude::{thread_rng, Rng};
|
||||
use rand::random_range;
|
||||
use std::ops::Bound;
|
||||
|
||||
#[derive(Clone)]
|
||||
@ -75,8 +75,6 @@ fn integer(
|
||||
let span = call.head;
|
||||
let range: Option<Spanned<Range>> = call.opt(engine_state, stack, 0)?;
|
||||
|
||||
let mut thread_rng = thread_rng();
|
||||
|
||||
match range {
|
||||
Some(range) => {
|
||||
let range_span = range.span;
|
||||
@ -94,9 +92,9 @@ fn integer(
|
||||
}
|
||||
|
||||
let value = match range.end() {
|
||||
Bound::Included(end) => thread_rng.gen_range(range.start()..=end),
|
||||
Bound::Excluded(end) => thread_rng.gen_range(range.start()..end),
|
||||
Bound::Unbounded => thread_rng.gen_range(range.start()..=i64::MAX),
|
||||
Bound::Included(end) => random_range(range.start()..=end),
|
||||
Bound::Excluded(end) => random_range(range.start()..end),
|
||||
Bound::Unbounded => random_range(range.start()..=i64::MAX),
|
||||
};
|
||||
|
||||
Ok(PipelineData::Value(Value::int(value, span), None))
|
||||
@ -110,7 +108,7 @@ fn integer(
|
||||
}
|
||||
}
|
||||
None => Ok(PipelineData::Value(
|
||||
Value::int(thread_rng.gen_range(0..=i64::MAX), span),
|
||||
Value::int(random_range(0..=i64::MAX), span),
|
||||
None,
|
||||
)),
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
use data_encoding::HEXUPPER;
|
||||
use rand::prelude::*;
|
||||
use rand::random_range;
|
||||
use rand_chacha::ChaCha8Rng;
|
||||
|
||||
use nu_test_support::nu;
|
||||
@ -16,7 +17,7 @@ fn random_bytes() -> Vec<String> {
|
||||
|
||||
(0..NUM)
|
||||
.map(|_| {
|
||||
let length = rng.gen_range(0..512);
|
||||
let length = random_range(0..512);
|
||||
let mut bytes = vec![0u8; length];
|
||||
rng.fill_bytes(&mut bytes);
|
||||
HEXUPPER.encode(&bytes)
|
||||
|
@ -7,8 +7,9 @@ use nu_test_support::{
|
||||
playground::{Dirs, Playground},
|
||||
};
|
||||
use rand::{
|
||||
distributions::{Alphanumeric, DistString, Standard},
|
||||
distr::{Alphanumeric, SampleString, StandardUniform},
|
||||
prelude::Distribution,
|
||||
random_range,
|
||||
rngs::StdRng,
|
||||
Rng, SeedableRng,
|
||||
};
|
||||
@ -382,7 +383,7 @@ struct TestRow(
|
||||
|
||||
impl TestRow {
|
||||
pub fn random() -> Self {
|
||||
StdRng::from_entropy().sample(Standard)
|
||||
StdRng::from_os_rng().sample(StandardUniform)
|
||||
}
|
||||
}
|
||||
|
||||
@ -433,12 +434,12 @@ impl TryFrom<&rusqlite::Row<'_>> for TestRow {
|
||||
}
|
||||
}
|
||||
|
||||
impl Distribution<TestRow> for Standard {
|
||||
impl Distribution<TestRow> for StandardUniform {
|
||||
fn sample<R>(&self, rng: &mut R) -> TestRow
|
||||
where
|
||||
R: rand::Rng + ?Sized,
|
||||
{
|
||||
let dt = DateTime::from_timestamp_millis(rng.gen_range(0..2324252554000))
|
||||
let dt = DateTime::from_timestamp_millis(random_range(0..2324252554000))
|
||||
.unwrap()
|
||||
.fixed_offset();
|
||||
|
||||
@ -446,18 +447,18 @@ impl Distribution<TestRow> for Standard {
|
||||
|
||||
// limit the size of the numbers to work around
|
||||
// https://github.com/nushell/nushell/issues/10612
|
||||
let filesize = rng.gen_range(-1024..=1024);
|
||||
let duration = rng.gen_range(-1024..=1024);
|
||||
let filesize = random_range(-1024..=1024);
|
||||
let duration = random_range(-1024..=1024);
|
||||
|
||||
TestRow(
|
||||
rng.gen(),
|
||||
rng.gen(),
|
||||
rng.gen(),
|
||||
rng.random(),
|
||||
rng.random(),
|
||||
rng.random(),
|
||||
filesize,
|
||||
duration,
|
||||
dt,
|
||||
rand_string,
|
||||
rng.gen::<u64>().to_be_bytes().to_vec(),
|
||||
rng.random::<u64>().to_be_bytes().to_vec(),
|
||||
rusqlite::types::Value::Null,
|
||||
)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user