RPM build fix (reverted CI changes which will need to be un-reverted or made conditional) and vendor Rust dependencies to make builds much faster in any CI system.
This commit is contained in:
92
zeroidc/vendor/fastrand/README.md
vendored
Normal file
92
zeroidc/vendor/fastrand/README.md
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
# fastrand
|
||||
|
||||
[](
|
||||
https://github.com/smol-rs/fastrand/actions)
|
||||
[](
|
||||
https://github.com/smol-rs/fastrand)
|
||||
[](
|
||||
https://crates.io/crates/fastrand)
|
||||
[](
|
||||
https://docs.rs/fastrand)
|
||||
|
||||
A simple and fast random number generator.
|
||||
|
||||
The implementation uses [Wyrand](https://github.com/wangyi-fudan/wyhash), a simple and fast
|
||||
generator but **not** cryptographically secure.
|
||||
|
||||
## Examples
|
||||
|
||||
Flip a coin:
|
||||
|
||||
```rust
|
||||
if fastrand::bool() {
|
||||
println!("heads");
|
||||
} else {
|
||||
println!("tails");
|
||||
}
|
||||
```
|
||||
|
||||
Generate a random `i32`:
|
||||
|
||||
```rust
|
||||
let num = fastrand::i32(..);
|
||||
```
|
||||
|
||||
Choose a random element in an array:
|
||||
|
||||
```rust
|
||||
let v = vec![1, 2, 3, 4, 5];
|
||||
let i = fastrand::usize(..v.len());
|
||||
let elem = v[i];
|
||||
```
|
||||
|
||||
Shuffle an array:
|
||||
|
||||
```rust
|
||||
let mut v = vec![1, 2, 3, 4, 5];
|
||||
fastrand::shuffle(&mut v);
|
||||
```
|
||||
|
||||
Generate a random `Vec` or `String`:
|
||||
|
||||
```rust
|
||||
use std::iter::repeat_with;
|
||||
|
||||
let v: Vec<i32> = repeat_with(|| fastrand::i32(..)).take(10).collect();
|
||||
let s: String = repeat_with(fastrand::alphanumeric).take(10).collect();
|
||||
```
|
||||
|
||||
To get reproducible results on every run, initialize the generator with a seed:
|
||||
|
||||
```rust
|
||||
// Pick an arbitrary number as seed.
|
||||
fastrand::seed(7);
|
||||
|
||||
// Now this prints the same number on every run:
|
||||
println!("{}", fastrand::u32(..));
|
||||
```
|
||||
|
||||
To be more efficient, create a new `Rng` instance instead of using the thread-local
|
||||
generator:
|
||||
|
||||
```rust
|
||||
use std::iter::repeat_with;
|
||||
|
||||
let rng = fastrand::Rng::new();
|
||||
let mut bytes: Vec<u8> = repeat_with(|| rng.u8(..)).take(10_000).collect();
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
Licensed under either of
|
||||
|
||||
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
||||
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
||||
|
||||
at your option.
|
||||
|
||||
#### Contribution
|
||||
|
||||
Unless you explicitly state otherwise, any contribution intentionally submitted
|
||||
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
|
||||
dual licensed as above, without any additional terms or conditions.
|
||||
Reference in New Issue
Block a user