Probably the furthest thing from idiomatic; still trying to figure out Rust best practices. Roughly twice as fast as a 'standard' Python implementation though, so there's that.