//! ANU Quantum RNG — real vacuum fluctuation entropy use crate::SharedState; pub async fn run_entropy_stream(state: SharedState) { loop { if let Ok(entropy) = fetch_anu_entropy().await { let mut s = state.write().await; s.entropy.bytes_received += entropy.len() as u64; s.entropy.sample = entropy.iter().take(16).copied().collect(); } tokio::time::sleep(tokio::time::Duration::from_secs(5)).await; } } async fn fetch_anu_entropy() -> Result, Box> { let url = "https://qrng.anu.edu.au/API/jsonI.php?length=1024&type=uint8"; let response = reqwest::get(url).await?; let json: serde_json::Value = response.json().await?; let data: Vec = json["data"] .as_array() .unwrap_or(&vec![]) .iter() .filter_map(|v| v.as_u64().map(|u| u as u8)) .collect(); Ok(data) }