Reflection in Rust.
Reflection is a powerful tool provided within many programming languages
that allows for meta-programming: using information about the program to
affect the program.
In other words, reflection allows us to inspect the program itself, its
syntax, and its type information at runtime.
While Rust doesn't yet provide much built-in tooling for reflection,
this crate serves to help fill that role.