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}