Learning about useful small crates
While data handling probably creates some of the most bug-prone code, we should also learn about some small libraries that make our lives much easier. This is the case for the following crates, where some macros can prevent us from writing lots of error-prone or potentially non-optimal code, making our final executables faster and easier to develop.
Creating lazily evaluated statics
We have seen in previous chapters how, in nightly Rust, it is possible to call some trivial constant functions that are evaluated at compile time. Nevertheless, this might not be enough for our needs, and we might not even want to use nightly Rust.
In this case, we can use a great crate, and the macro with the same name—lazy_static
. This macro allows us to create static variables that will run the code to be generated on their first use. Let's check it, for example, for a HashMap
. Creating a HashMap
or adding values to it cannot be done during compile time. As we saw in previous...