rand() -> usize14fda81ceSLoGinpub fn rand() -> usize { 2*2b7818e8SLoGin static mut SEED: u64 = 0xdead_beef_cafe_babe; 3*2b7818e8SLoGin let mut buf = [0u8; size_of::<usize>()]; 4*2b7818e8SLoGin for x in buf.iter_mut() { 5*2b7818e8SLoGin unsafe { 6*2b7818e8SLoGin // from musl 7*2b7818e8SLoGin SEED = SEED.wrapping_mul(0x5851_f42d_4c95_7f2d); 8*2b7818e8SLoGin *x = (SEED >> 33) as u8; 9*2b7818e8SLoGin } 10*2b7818e8SLoGin } 11*2b7818e8SLoGin let x: usize = unsafe { core::mem::transmute(buf) }; 12*2b7818e8SLoGin return x; 134fda81ceSLoGin } 14