rust-pratice puzzle hanoi use non-recursive (simunator pc process) tool cargo expand can print macro compiled code