Document and correct usage of new rand_os "feature"
This commit is contained in:
@@ -74,8 +74,15 @@ pinned version of Rustc if you require compatibility with a specific version.
|
||||
|
||||
## Crate Features
|
||||
|
||||
Rand is built with only the `std` feature enabled by default. The following
|
||||
optional features are available:
|
||||
Rand is built with the `std` and `rand_os` features enabled by default:
|
||||
|
||||
- `std` enables functionality dependent on the `std` lib and implies `alloc`
|
||||
and `rand_os`
|
||||
- `rand_os` enables the `rand_os` crate, `rngs::OsRng` and enables its usage;
|
||||
the continued existance of this feature is not guaranteed so users are
|
||||
encouraged to specify `std` instead
|
||||
|
||||
The following optional features are available:
|
||||
|
||||
- `alloc` can be used instead of `std` to provide `Vec` and `Box`.
|
||||
- `log` enables some logging via the `log` crate.
|
||||
|
||||
+4
-71
@@ -291,45 +291,12 @@ impl SeedableRng for StdRng {
|
||||
impl CryptoRng for StdRng {}
|
||||
|
||||
|
||||
#[cfg(all(feature="std",
|
||||
any(target_os = "linux", target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "haiku",
|
||||
target_os = "emscripten",
|
||||
target_os = "solaris",
|
||||
target_os = "cloudabi",
|
||||
target_os = "macos", target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "bitrig",
|
||||
target_os = "redox",
|
||||
target_os = "fuchsia",
|
||||
windows,
|
||||
all(target_arch = "wasm32", feature = "stdweb"),
|
||||
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
||||
)))]
|
||||
#[cfg(feature="rand_os")]
|
||||
#[derive(Clone, Debug)]
|
||||
#[deprecated(since="0.6.0", note="import with rand::rngs::OsRng instead")]
|
||||
pub struct OsRng(rngs::OsRng);
|
||||
|
||||
#[cfg(all(feature="std",
|
||||
any(target_os = "linux", target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "haiku",
|
||||
target_os = "emscripten",
|
||||
target_os = "solaris",
|
||||
target_os = "cloudabi",
|
||||
target_os = "macos", target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "bitrig",
|
||||
target_os = "redox",
|
||||
target_os = "fuchsia",
|
||||
windows,
|
||||
all(target_arch = "wasm32", feature = "stdweb"),
|
||||
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
||||
)))]
|
||||
#[cfg(feature="std")]
|
||||
#[cfg(feature="rand_os")]
|
||||
impl RngCore for OsRng {
|
||||
#[inline(always)]
|
||||
fn next_u32(&mut self) -> u32 {
|
||||
@@ -352,48 +319,14 @@ impl RngCore for OsRng {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(all(feature="std",
|
||||
any(target_os = "linux", target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "haiku",
|
||||
target_os = "emscripten",
|
||||
target_os = "solaris",
|
||||
target_os = "cloudabi",
|
||||
target_os = "macos", target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "bitrig",
|
||||
target_os = "redox",
|
||||
target_os = "fuchsia",
|
||||
windows,
|
||||
all(target_arch = "wasm32", feature = "stdweb"),
|
||||
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
||||
)))]
|
||||
#[cfg(feature="std")]
|
||||
#[cfg(feature="rand_os")]
|
||||
impl OsRng {
|
||||
pub fn new() -> Result<Self, Error> {
|
||||
rngs::OsRng::new().map(OsRng)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(all(feature="std",
|
||||
any(target_os = "linux", target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "haiku",
|
||||
target_os = "emscripten",
|
||||
target_os = "solaris",
|
||||
target_os = "cloudabi",
|
||||
target_os = "macos", target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "bitrig",
|
||||
target_os = "redox",
|
||||
target_os = "fuchsia",
|
||||
windows,
|
||||
all(target_arch = "wasm32", feature = "stdweb"),
|
||||
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
||||
)))]
|
||||
#[cfg(feature="std")]
|
||||
#[cfg(feature="rand_os")]
|
||||
impl CryptoRng for OsRng {}
|
||||
|
||||
|
||||
|
||||
+2
-34
@@ -119,23 +119,7 @@ pub mod seq;
|
||||
#[cfg(feature="std")] #[doc(hidden)] pub use deprecated::EntropyRng;
|
||||
|
||||
#[allow(deprecated)]
|
||||
#[cfg(all(feature="std",
|
||||
any(target_os = "linux", target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "haiku",
|
||||
target_os = "emscripten",
|
||||
target_os = "solaris",
|
||||
target_os = "cloudabi",
|
||||
target_os = "macos", target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "bitrig",
|
||||
target_os = "redox",
|
||||
target_os = "fuchsia",
|
||||
windows,
|
||||
all(target_arch = "wasm32", feature = "stdweb"),
|
||||
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
||||
)))]
|
||||
#[cfg(feature="rand_os")]
|
||||
#[doc(hidden)]
|
||||
pub use deprecated::OsRng;
|
||||
|
||||
@@ -152,23 +136,7 @@ pub mod jitter {
|
||||
pub use rngs::TimerError;
|
||||
}
|
||||
#[allow(deprecated)]
|
||||
#[cfg(all(feature="std",
|
||||
any(target_os = "linux", target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "haiku",
|
||||
target_os = "emscripten",
|
||||
target_os = "solaris",
|
||||
target_os = "cloudabi",
|
||||
target_os = "macos", target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "bitrig",
|
||||
target_os = "redox",
|
||||
target_os = "fuchsia",
|
||||
windows,
|
||||
all(target_arch = "wasm32", feature = "stdweb"),
|
||||
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
||||
)))]
|
||||
#[cfg(feature="rand_os")]
|
||||
#[doc(hidden)]
|
||||
pub mod os {
|
||||
pub use deprecated::OsRng;
|
||||
|
||||
+3
-51
@@ -191,43 +191,11 @@ impl EntropySource for NoSource {
|
||||
}
|
||||
|
||||
|
||||
#[cfg(all(feature="std",
|
||||
any(target_os = "linux", target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "haiku",
|
||||
target_os = "emscripten",
|
||||
target_os = "solaris",
|
||||
target_os = "cloudabi",
|
||||
target_os = "macos", target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "bitrig",
|
||||
target_os = "redox",
|
||||
target_os = "fuchsia",
|
||||
windows,
|
||||
all(target_arch = "wasm32", feature = "stdweb"),
|
||||
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
||||
)))]
|
||||
#[cfg(feature="rand_os")]
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct Os(rngs::OsRng);
|
||||
|
||||
#[cfg(all(feature="std",
|
||||
any(target_os = "linux", target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "haiku",
|
||||
target_os = "emscripten",
|
||||
target_os = "solaris",
|
||||
target_os = "cloudabi",
|
||||
target_os = "macos", target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "bitrig",
|
||||
target_os = "redox",
|
||||
target_os = "fuchsia",
|
||||
windows,
|
||||
all(target_arch = "wasm32", feature = "stdweb"),
|
||||
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
||||
)))]
|
||||
#[cfg(feature="rand_os")]
|
||||
impl EntropySource for Os {
|
||||
fn new_and_fill(dest: &mut [u8]) -> Result<Self, Error> {
|
||||
let mut rng = rngs::OsRng::new()?;
|
||||
@@ -240,23 +208,7 @@ impl EntropySource for Os {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(not(all(feature="std",
|
||||
any(target_os = "linux", target_os = "android",
|
||||
target_os = "netbsd",
|
||||
target_os = "dragonfly",
|
||||
target_os = "haiku",
|
||||
target_os = "emscripten",
|
||||
target_os = "solaris",
|
||||
target_os = "cloudabi",
|
||||
target_os = "macos", target_os = "ios",
|
||||
target_os = "freebsd",
|
||||
target_os = "openbsd", target_os = "bitrig",
|
||||
target_os = "redox",
|
||||
target_os = "fuchsia",
|
||||
windows,
|
||||
all(target_arch = "wasm32", feature = "stdweb"),
|
||||
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
||||
))))]
|
||||
#[cfg(not(feature="std"))]
|
||||
type Os = NoSource;
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -178,5 +178,5 @@ pub use self::small::SmallRng;
|
||||
pub use self::std::StdRng;
|
||||
#[cfg(feature="std")] pub use self::thread::ThreadRng;
|
||||
|
||||
#[cfg(feature="std")]
|
||||
#[cfg(feature="rand_os")]
|
||||
pub use rand_os::OsRng;
|
||||
|
||||
Reference in New Issue
Block a user