RSSAmplifier

Blog

Sabrina Jewson's Blog

sabrinajewson.orgRSS feed ↗6 posts

Latest posts

“Truly Hygienic” Let Statements in Rust

Remon is a responsible library developer. She cares about stability, flexibility and correctness, using whichever tools are presently accessible to achieve those goals. Her authored libraries feature automated testing and extensive documentation; she allots design decisions rationale; she knows her language features and traditions and how to apply them to best effect. And, somewhere to be…

Why the “Null” Lifetime Does Not Exist

This post originated from an interesting conversation had on the Rust community Discord the other day, in which a user asks: Does 'static have an opposite? Zero lifetime that’s shorter than anything? Details of the question are not relevant, but intuitively the question does make sense. After all, Rust already has 'static , representing a lifetime that is longer than or equal to all other…

Modular Errors in Rust

It is thankfully common wisdom nowadays that documentation must be placed as near as possible to the code it documents, and should be fine-grained to a minimal unit of describability (the thing being documented). The practice provides numerous benefits to the codebase and project as a whole: When editing the source code, contributors are less likely to forget to update the documentation as well,…

The Better Alternative to Lifetime GATs

Update (2022-05-30): danielhenrymantilla recently released a crate, nougat , which provides a proc macro that allows you to use the technique presented in this article with the same syntax as regular GATs. I encourage you to check it out! Where real GATs fall short GATs are an unstable feature of Rust, likely to be stabilized in the next few versions, that allow you to add generic parameters on…

Async destructors, async genericity and completion futures

The main focus of this article will be on attempting to design a system to support asynchronous destructors in the Rust programming language, figuring the exact semantics of them and resolving any issues encountered along the way. By side effect, it also designs a language feature called “async genericity” which enables supporting blocking and asynchronous code with the same codebase, as well as…

Building this site

Since I’ve spent the past few days working on creating this website, I thought I’d make good use of the effort by documenting my experiences here. I got the idea to create a website from a desire to have a place to write blog posts. Initially I had plans on just making GitHub gists and sharing them on Reddit or something, but I (thankfully) decided against that since a site allows for much more…