This is a great Post, many thanks and its encouraging to see the possibility of Rust being used for EOS.
It looks like the nightly build of rust has removed panic_fmt. If I try running your code I get:
definition of unknown language item 'panic_fmt'
This is documented here https://users.rust-lang.org/t/psa-breaking-change-panic-fmt-language-item-removed-in-favor-of-panic-implementation/17875
If you could update your lib.rs for this, I'd be grateful!