关于rust:如何从种子生成随机字节数组?

How to generate an array of random bytes from a seed?

本问题已经有最佳答案,请猛点这里访问。

我想从自定义随机数生成器生成UUID:

1
2
3
4
5
6
7
8
9
10
11
12
13
use uuid::{Builder, Uuid, Variant, Version};
use rand::{Rng, SeedableRng, rngs::StdRng, RngCore};

fn main() {
    let seed = [5u8; 32];
    let mut rng: StdRng = SeedableRng::from_seed(seed);
    let bytes = ???
    let uuid = Builder::from_bytes(bytes)
        .set_variant(Variant::RFC4122)
        .set_version(Version::Random)
        .build();
    println!("{:?}", uuid);
}

如何获取字节?


我想我已经做到了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
use rand::{rngs::StdRng, RngCore, SeedableRng};
use uuid::{Builder, Variant, Version};

fn main() {
    let seed = [0u8; 32];
    let mut rng: StdRng = SeedableRng::from_seed(seed);
    let mut bytes = [0u8; 16];
    rng.fill_bytes(&mut bytes);
    let uuid = Builder::from_bytes(bytes)
        .set_variant(Variant::RFC4122)
        .set_version(Version::Random)
        .build();
    println!("{:?}", uuid);
}