Yesterday I had the first live code-reading event. I attempted to understand how the "thousands" crate works. π¦ It can commafy a number converting a number such as 1234567 into a string like this "1,234,567" to make it more readable.
This is part of the Rust Maven live events series. During this event went over the implementation of this crate.
A couple of observations, and let me emphasize, this is not a (negative) critique of the crate or the author.
π¦ If there are tests, starting from them can help understanding the flow of the code. Unfortunately in some cases the tests themselves are a bit too complex. (This was not such case.)
π¦ If there is a nice and simple example of how to use the crate, we can start from that code trying to explore the implementation.
π¦ We could observe (or rather guess) the evolution of the crate from specific solution (dealing with digits) to more generic solution (dealing with any set of characters). Some variable/function/etc. names were using the generic vocabulary, some other were still in the original way talking about digits.
π¦ There are multiple ways to define type-constraints (e.g. immediately after the type-name or in a "where"-clause. Mixing them can confuse Gabor. (Maybe others as well. )
π¦ The audience in such code-reading can help.
π¦ One hour was not enough even for such small crate and even after I already invested some time trying to understand it.
π¦ Watch the recordings here
π¦ If you are interested in earlier (and future) live events check them out here.