For this exercise check out the section [Macros](https://doc.rust-lang.org/book/2018-edition/macros.html) and the chapter [Macros Appendix](https://doc.rust-lang.org/book/2018-edition/appendix-04-macros.html) of the Rust Book and [The Little Book of Rust Macros](https://danielkeep.github.io/tlborm/book/index.html).