Skip to main content

stackforge_core/utils/
random.rs

1//! Random data generation utilities (feature-gated).
2
3#[cfg(feature = "rand")]
4use rand::Rng;
5
6/// Generate random bytes.
7#[cfg(feature = "rand")]
8pub fn random_bytes(len: usize) -> Vec<u8> {
9    let mut rng = rand::rng();
10    (0..len).map(|_| rng.random()).collect()
11}
12
13/// Generate a random MAC address.
14#[cfg(feature = "rand")]
15pub fn random_mac() -> crate::MacAddress {
16    let mut rng = rand::rng();
17    let mut bytes = [0u8; 6];
18    rng.fill(&mut bytes);
19    // Set locally administered bit, clear multicast bit
20    bytes[0] = (bytes[0] | 0x02) & 0xFE;
21    crate::MacAddress::new(bytes)
22}