Rust is a reliable language that prioritizes correctness. However, during development, it can be a burden to account for every single error path immediately. This article presents a few techniques that defer handling correctness to that you can stay longer in the happy path, as well as a library I developed to make this process more convenient.
Some Rust libraries are like oil and water, they just don't mix. With the async runtime tokio and the data-parallelism library rayon , I learned it the hard way.
These days saw the release of nolife 0.4 , a crate that offers an intuitive fix for borrow errors by letting you conveniently store a scope of execution containing multiple borrows inside of your struct without a lifetime. I want to seize this opportunity to write a bit about what goes into making a library that juggles self-referential code like nolife does.
Tired of E0597: borrowed value does not live long enough ? 😆 Sometimes you just wish you could keep the variables you borrowed in your scope just a little longer... Well, nolife has got your back! Find it on lib.rs 🛒
Naming is hard. After all, it is one of the two hard problems of computer science, with cache invalidation and off-by-one errors. Mostly we would assume that poorly chosen type and variable names would merely make the code harder to read, but turns out they can lead to undefined behaviour , too. And no, I'm not talking about the reserved identifiers in C (I mean, who would use _Foo or…
Hello World! I'm Louis Dureuil, a Senior Engineer at Meilisearch and your resident raccoon 🦝 PhD and Comp. Sc. Engineer from Ensimag , I'm interested in programming languages, coding practices, data structure and optimization, compilation (I have experience with writing JIT compilers and the LLVM framework), code analysis (binary, source) and fault injection. A C++ dedicated…