forked from extern/nushell
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:
@ -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,
|
||||
)),
|
||||
}
|
||||
|
Reference in New Issue
Block a user