Optimizing a Math Expression Parser in Rust