I'm not porting libipuz's JSON code from C to Rust, but rather writing a new serde-based implementation which will then create IpuzFoo types. This is fun!
(Libipuz is the backend for gnome-crosswords; it's the library that reads the ipuz format and has the representations of puzzles, cells, styles, clues, etc.)