Skip to content

Commit 27e323a

Browse files
committed
Rename choose_multiple → sample
1 parent 83130e8 commit 27e323a

File tree

2 files changed

+28
-28
lines changed

2 files changed

+28
-28
lines changed

benches/seq.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ fn seq_shuffle_100(b: &mut Bencher) {
1919
}
2020

2121
#[bench]
22-
fn seq_slice_choose_multiple_10_of_100(b: &mut Bencher) {
22+
fn seq_slice_sample_10_of_100(b: &mut Bencher) {
2323
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
2424
let x : &[usize] = &[1; 100];
2525
let mut buf = [0; 10];
2626
b.iter(|| {
27-
for (v, slot) in x.choose_multiple(&mut rng, buf.len()).zip(buf.iter_mut()) {
27+
for (v, slot) in x.sample(&mut rng, buf.len()).zip(buf.iter_mut()) {
2828
*slot = *v;
2929
}
3030
buf
@@ -41,21 +41,21 @@ fn seq_iter_choose_from_100(b: &mut Bencher) {
4141
}
4242

4343
#[bench]
44-
fn seq_iter_choose_multiple_10_of_100(b: &mut Bencher) {
44+
fn seq_iter_sample_10_of_100(b: &mut Bencher) {
4545
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
4646
let x : &[usize] = &[1; 100];
4747
b.iter(|| {
48-
x.iter().cloned().choose_multiple(&mut rng, 10) /*.unwrap_or_else(|e| e)*/
48+
x.iter().cloned().sample(&mut rng, 10) /*.unwrap_or_else(|e| e)*/
4949
})
5050
}
5151

5252
#[bench]
53-
fn seq_iter_choose_multiple_fill_10_of_100(b: &mut Bencher) {
53+
fn seq_iter_sample_fill_10_of_100(b: &mut Bencher) {
5454
let mut rng = SmallRng::from_rng(thread_rng()).unwrap();
5555
let x : &[usize] = &[1; 100];
5656
let mut buf = [0; 10];
5757
b.iter(|| {
58-
x.iter().cloned().choose_multiple_fill(&mut rng, &mut buf)
58+
x.iter().cloned().sample_fill(&mut rng, &mut buf)
5959
})
6060
}
6161

src/seq.rs

+22-22
Original file line numberDiff line numberDiff line change
@@ -76,19 +76,19 @@ pub trait SliceRandom {
7676
/// use rand::seq::SliceRandom;
7777
///
7878
/// let mut rng = &mut rand::thread_rng();
79-
/// let sample = "Hello, audience!".as_bytes();
79+
/// let sequence = "Hello, audience!".as_bytes();
8080
///
8181
/// // collect the results into a vector:
82-
/// let v: Vec<u8> = sample.choose_multiple(&mut rng, 3).cloned().collect();
82+
/// let v: Vec<u8> = sequence.sample(&mut rng, 3).cloned().collect();
8383
///
8484
/// // store in a buffer:
8585
/// let mut buf = [0u8; 5];
86-
/// for (b, slot) in sample.choose_multiple(&mut rng, buf.len()).zip(buf.iter_mut()) {
86+
/// for (b, slot) in sequence.sample(&mut rng, buf.len()).zip(buf.iter_mut()) {
8787
/// *slot = *b;
8888
/// }
8989
/// ```
9090
#[cfg(feature = "alloc")]
91-
fn choose_multiple<R>(&self, rng: &mut R, amount: usize) -> SliceChooseIter<Self, Self::Item>
91+
fn sample<R>(&self, rng: &mut R, amount: usize) -> SliceChooseIter<Self, Self::Item>
9292
where R: Rng + ?Sized;
9393

9494
/// Shuffle a mutable slice in place.
@@ -173,7 +173,7 @@ pub trait IteratorRandom: Iterator + Sized {
173173
/// equals the number of elements available.
174174
///
175175
/// Complexity is `O(n)` where `n` is the length of the iterator.
176-
fn choose_multiple_fill<R>(mut self, rng: &mut R, buf: &mut [Self::Item])
176+
fn sample_fill<R>(mut self, rng: &mut R, buf: &mut [Self::Item])
177177
-> usize where R: Rng + ?Sized
178178
{
179179
let amount = buf.len();
@@ -200,7 +200,7 @@ pub trait IteratorRandom: Iterator + Sized {
200200

201201
/// Collects `amount` values at random from the iterator into a vector.
202202
///
203-
/// This is equivalent to `choose_multiple_fill` except for the result type.
203+
/// This is equivalent to `sample_fill` except for the result type.
204204
///
205205
/// Although the elements are selected randomly, the order of elements in
206206
/// the buffer is neither stable nor fully random. If random ordering is
@@ -212,7 +212,7 @@ pub trait IteratorRandom: Iterator + Sized {
212212
///
213213
/// Complexity is `O(n)` where `n` is the length of the iterator.
214214
#[cfg(feature = "alloc")]
215-
fn choose_multiple<R>(mut self, rng: &mut R, amount: usize) -> Vec<Self::Item>
215+
fn sample<R>(mut self, rng: &mut R, amount: usize) -> Vec<Self::Item>
216216
where R: Rng + ?Sized
217217
{
218218
let mut reservoir = Vec::with_capacity(amount);
@@ -264,7 +264,7 @@ impl<T> SliceRandom for [T] {
264264
}
265265

266266
#[cfg(feature = "alloc")]
267-
fn choose_multiple<R>(&self, rng: &mut R, amount: usize) -> SliceChooseIter<Self, Self::Item>
267+
fn sample<R>(&self, rng: &mut R, amount: usize) -> SliceChooseIter<Self, Self::Item>
268268
where R: Rng + ?Sized
269269
{
270270
let amount = ::core::cmp::min(amount, self.len());
@@ -306,8 +306,8 @@ impl<T> SliceRandom for [T] {
306306
impl<I> IteratorRandom for I where I: Iterator + Sized {}
307307

308308

309-
/// Iterator over multiple choices, as returned by [`SliceRandom::choose_multiple](
310-
/// trait.SliceRandom.html#method.choose_multiple).
309+
/// Iterator over multiple choices, as returned by [`SliceRandom::sample](
310+
/// trait.SliceRandom.html#method.sample).
311311
#[cfg(feature = "alloc")]
312312
#[derive(Debug)]
313313
pub struct SliceChooseIter<'a, S: ?Sized + 'a, T: 'a> {
@@ -346,18 +346,18 @@ impl<'a, S: Index<usize, Output = T> + ?Sized + 'a, T: 'a> ExactSizeIterator
346346

347347
/// Randomly sample `amount` elements from a finite iterator.
348348
///
349-
/// Deprecated: use [`IteratorRandom::choose_multiple`] instead.
349+
/// Deprecated: use [`IteratorRandom::sample`] instead.
350350
///
351-
/// [`IteratorRandom::choose_multiple`]: trait.IteratorRandom.html#method.choose_multiple
351+
/// [`IteratorRandom::sample`]: trait.IteratorRandom.html#method.sample
352352
#[cfg(feature = "alloc")]
353-
#[deprecated(since="0.6.0", note="use IteratorRandom::choose_multiple instead")]
353+
#[deprecated(since="0.6.0", note="use IteratorRandom::sample instead")]
354354
pub fn sample_iter<T, I, R>(rng: &mut R, iterable: I, amount: usize) -> Result<Vec<T>, Vec<T>>
355355
where I: IntoIterator<Item=T>,
356356
R: Rng + ?Sized,
357357
{
358358
use seq::IteratorRandom;
359359
let iter = iterable.into_iter();
360-
let result = iter.choose_multiple(rng, amount);
360+
let result = iter.sample(rng, amount);
361361
if result.len() == amount {
362362
Ok(result)
363363
} else {
@@ -373,11 +373,11 @@ pub fn sample_iter<T, I, R>(rng: &mut R, iterable: I, amount: usize) -> Result<V
373373
///
374374
/// Panics if `amount > slice.len()`
375375
///
376-
/// Deprecated: use [`SliceRandom::choose_multiple`] instead.
376+
/// Deprecated: use [`SliceRandom::sample`] instead.
377377
///
378-
/// [`SliceRandom::choose_multiple`]: trait.SliceRandom.html#method.choose_multiple
378+
/// [`SliceRandom::sample`]: trait.SliceRandom.html#method.sample
379379
#[cfg(feature = "alloc")]
380-
#[deprecated(since="0.6.0", note="use SliceRandom::choose_multiple instead")]
380+
#[deprecated(since="0.6.0", note="use SliceRandom::sample instead")]
381381
pub fn sample_slice<R, T>(rng: &mut R, slice: &[T], amount: usize) -> Vec<T>
382382
where R: Rng + ?Sized,
383383
T: Clone
@@ -397,11 +397,11 @@ pub fn sample_slice<R, T>(rng: &mut R, slice: &[T], amount: usize) -> Vec<T>
397397
///
398398
/// Panics if `amount > slice.len()`
399399
///
400-
/// Deprecated: use [`SliceRandom::choose_multiple`] instead.
400+
/// Deprecated: use [`SliceRandom::sample`] instead.
401401
///
402-
/// [`SliceRandom::choose_multiple`]: trait.SliceRandom.html#method.choose_multiple
402+
/// [`SliceRandom::sample`]: trait.SliceRandom.html#method.sample
403403
#[cfg(feature = "alloc")]
404-
#[deprecated(since="0.6.0", note="use SliceRandom::choose_multiple instead")]
404+
#[deprecated(since="0.6.0", note="use SliceRandom::sample instead")]
405405
pub fn sample_slice_ref<'a, R, T>(rng: &mut R, slice: &'a [T], amount: usize) -> Vec<&'a T>
406406
where R: Rng + ?Sized
407407
{
@@ -584,8 +584,8 @@ mod test {
584584

585585
let mut r = ::test::rng(401);
586586
let vals = (min_val..max_val).collect::<Vec<i32>>();
587-
let small_sample = vals.iter().choose_multiple(&mut r, 5);
588-
let large_sample = vals.iter().choose_multiple(&mut r, vals.len() + 5);
587+
let small_sample = vals.iter().sample(&mut r, 5);
588+
let large_sample = vals.iter().sample(&mut r, vals.len() + 5);
589589

590590
assert_eq!(small_sample.len(), 5);
591591
assert_eq!(large_sample.len(), vals.len());

0 commit comments

Comments
 (0)