extern crate core; extern crate norx_permutation as permutation; use std::{ fs, env }; use std::io::Write; use std::path::PathBuf; use permutation::{ U, S, L }; #[allow(dead_code)] #[path = "src/constant.rs"] mod constant; use constant::*; fn init() -> [U; S] { let mut state = [0; S]; for i in 0..S { state[i] = i as U; } permutation::portable::f(&mut state); permutation::portable::f(&mut state); state[12] ^= W as U; state[13] ^= L as U; state[14] ^= P as U; state[15] ^= T as U; state } fn main() { let dir = env::var("OUT_DIR").unwrap(); let mut p = fs::File::create(PathBuf::from(dir).join("init_state.rs")).unwrap(); write!(p, "{:?}", &init()[..]).unwrap(); }