DEV Community

Gabor Szabo
Gabor Szabo

Posted on • Originally published at rust.code-maven.com

2

Rust Source Code Reading: The thousands crate

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.

Image of Docusign

Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

Image of Datadog

Create and maintain end-to-end frontend tests

Learn best practices on creating frontend tests, testing on-premise apps, integrating tests into your CI/CD pipeline, and using Datadog’s testing tunnel.

Download The Guide