# [−] [src] Module rand::seq

Sequence-related functionality

This module provides:

- [`seq::SliceRandom`] slice sampling and mutation
- [`seq::IteratorRandom`] iterator sampling
- [`seq::index::sample`] low-level API to choose multiple indices from `0..length`

Also see:

- [`distributions::weighted`] module which provides implementations of weighted index sampling.

In order to make results reproducible across 32-64 bit architectures, all `usize` indices are sampled as a `u32` where possible (also providing a small performance boost in some cases).

## Modules

index | Low-level API for sampling indices

## Structs

SliceChooseIter | An iterator over multiple slice elements.

## Traits

IteratorRandom | Extension trait on iterators, providing random sampling methods.
SliceRandom | Extension trait on slices, providing random mutation and sampling methods.

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)