Module random
Random value generation.
This module provides two low-level interfaces for random number generation:
- The
Rngtrait abstracts over all random number generators (RNGs) and is intended to be used in all cases where the choice of RNG is left to the user. It provides thefill_bytesmethod that fills a buffer ofu8s with freshly-generated random data. - The
SystemRngimplements theRngtrait by asking the operating system for cryptographically-secure random data on every call tofill_bytes.
In the future, higher-level interfaces for features like sampling distributions
may be added to this module. Until that time, users of fill_bytes should
take care to avoid sampling bias when using the filled byte buffer to create
an instance of another type. In particular, the modulo operation is not
suitable for constraining the range of an unconstrained number:
let mut buf = [0; 2];
rng.fill_bytes(&mut buf);
// 💀 **DO NOT DO THIS** 💀
// Numbers below ca. 22000 will be twice as likely.
let very_bad_random_number = u16::from_ne_bytes(buf) % 45000;
Examples
Generating a version 4/variant 1 UUID represented as text:
use ;
println!;
Modules
- alloc Memory allocation APIs
- any Utilities for dynamic typing or type reflection.
- arch SIMD and vendor intrinsics module.
- array Utilities for the array primitive type.
- ascii Operations on ASCII strings and characters.
- asserting
- async_iter Composable asynchronous iteration.
-
autodiff
This module provides support for automatic differentiation. For precise information on
differences between the
autodiff_forwardandautodiff_reversemacros and how to use them, see their respective documentation. - borrow Utilities for working with borrowed data.
-
bstr
The
ByteStrtype and trait implementations. - cell Shareable mutable containers.
-
char
Utilities for the
charprimitive type. -
clone
The
Clonetrait for types that cannot be 'implicitly copied'. - cmp Utilities for comparing and ordering values.
- contracts Unstable module containing the unstable contracts lang items and attribute macros.
- convert Traits for conversions between types.
-
default
The
Defaulttrait for types with a default value. - error Interfaces for working with Errors.
-
f128
Constants for the
f128quadruple-precision floating point type. -
f16
Constants for the
f16half-precision floating point type. -
f32
Constants for the
f32single-precision floating point type. -
f64
Constants for the
f64double-precision floating point type. - ffi Platform-specific types, as defined by C.
- field Field Reflection
- fmt Utilities for formatting and printing strings.
-
from
Unstable module containing the unstable
Fromderive macro. - future Asynchronous basic functionality.
- hash Generic hashing support.
- hint Hints to compiler that affects how code should be emitted or optimized.
- index Helper types for indexing slices.
- intrinsics Compiler intrinsics.
- io Traits, helpers, and type definitions for core I/O functionality.
- iter Composable external iteration.
- marker Primitive traits and types representing basic properties of types.
- mem Basic functions for dealing with memory, values, and types.
- net Networking primitives for IP communication.
- num Numeric traits and functions for the built-in numeric types.
-
offload
This module provides support for gpu offloading. For technical details regarding the
offload_kernelandoffload!macros, see their respective documentation. - ops Overloadable operators.
- option Optional values.
- os OS-specific functionality.
- panic Panic support in core.
- panicking Panic support for core
-
pat
Helper module for exporting the
pattern_typemacro - pin Types that pin data to a location in memory.
- prelude The core prelude
- primitive This module reexports the primitive types to allow usage that is not possibly shadowed by other declared types.
- process A module for working with processes.
- profiling Profiling markers for compiler instrumentation.
- ptr Manually manage memory through raw pointers.
- random Random value generation.
-
range
Replacement range types
-
result
Error handling with the
Resulttype. - simd Portable SIMD module.
- slice Slice management and manipulation.
- str String manipulation.
- sync Synchronization primitives
- task Types and Traits for working with asynchronous tasks.
- time Temporal quantification.
-
ub_checks
Provides the
assert_unsafe_preconditionmacro as well as some utility functions that cover common preconditions. - unicode Unicode internals used in liballoc and libstd. Not public API.
- unsafe_binder Operators used to turn types into unsafe binders and back.
-
view
Helpers module for exporting the
view_typesmacro. - wtf8 Implementation of the WTF-8 encoding.
Structs
- SystemRng The system random number generator.
Functions
- random Generates a random value from a distribution, using the default random source.
Macros
-
assert
Asserts that a boolean expression is
trueat runtime. -
assert_eq
Asserts that two expressions are equal to each other (using
PartialEq). -
assert_ne
Asserts that two expressions are not equal to each other (using
PartialEq). - assert_unsafe_precondition Checks that the preconditions of an unsafe function are followed.
- cfg Evaluates boolean combinations of configuration flags at compile-time.
- column Expands to the column number at which it was invoked.
- compile_error Causes compilation to fail with the given error message when encountered.
- concat Concatenates literals into a static string slice.
- concat_bytes Concatenates literals into a byte slice.
-
const_format_args
Same as
format_args, but can be used in some const contexts. -
debug_assert
Asserts that a boolean expression is
trueat runtime. - debug_assert_eq Asserts that two expressions are equal to each other.
- debug_assert_ne Asserts that two expressions are not equal to each other.
- direct_const_arg Creates a new style directly represented const argument.
- env Inspects an environment variable at compile time.
- file Expands to the file name in which it was invoked.
- format_args Constructs parameters for the other string-formatting macros.
-
format_args_nl
Same as
format_args, but adds a newline in the end. - impl_partial_eq
- impl_partial_eq_n
- impl_partial_eq_ord
- include Parses a file as an expression or an item according to the context.
- include_bytes Includes a file as a reference to a byte array.
- include_str Includes a UTF-8 encoded file as a string.
- line Expands to the line number on which it was invoked.
- log_syntax Prints passed tokens into the standard output.
- matches Returns whether the given expression matches the provided pattern.
- module_path Expands to a string that represents the current module path.
- offload Launches a kernel on an offload device (e.g., a GPU).
- option_env Optionally inspects an environment variable at compile time.
- panic Panics the current thread.
- pattern_type Creates a pattern type.
- stringify Stringifies its arguments.
- todo Indicates unfinished code.
- trace_macros Enables or disables tracing functionality used for debugging other macros.
- try Unwraps a result or propagates its error.
- unimplemented Indicates unimplemented code by panicking with a message of "not implemented".
- unreachable Indicates unreachable code.
- view_type Creates a view type.
- write Writes formatted data into a buffer.
- writeln Writes formatted data into a buffer, with a newline appended.