Safely generating legal chess moves at 475,000,000 nodes/s (in Rust)