About Me
I work on open source crates and am active on
- Rust Users
- Rust Internals
- Github
- Reddit (/u/YatoRust instead of RustyYato, :P)
This blog is about the Rust Programming Language. Here we will delve into the details of how Rust operates, how it desugars various constructs, and more!
I have created a number of crates including:
generic-field-projection- A prototype implementation for RFC #2708, which allows you overload the dot operator to get field access on arbitrary types.ptr-to-fieldwas a precursor togeneric-field-projectionand helped inform it’s design decisions.typsy- Type level list and enums which is used in the internals ofgeneric-field-projection. This crate was heavily inspired byfrunk
double-buffer- A re-implementation ofleft-rightthat has a few different design decisions and serves as a lower level api toleft-rightgeneric-vec– aVecimplementation that is generic over its storage strategy- For example, it’s possible to implement both a heap-backed vector and an array backed vector with this library and use
GenericVecwithout caring about how its data is stored
- For example, it’s possible to implement both a heap-backed vector and an array backed vector with this library and use
type-families- An implementation of a few popular type-classes from Haskell in stable Rustrel-ptr- Relative pointers in Rust, which can be used to soundly create one class of self-referential types.vec-utils- Extra functions to efficiently covnert aVec<T>toVec<U>, reusing the memory where possibleset_slice- My first crate, some syntactic sugar to allow setting arbitrary sub-slices of a slice
I’ve also work on a number of open source projects, chief among them:
- Rust
stdlibraryPR- where I modified the blanket implementations onFrom -> TryFromtoInto -> TryFrom - MIRI deallocation hooks
PR 1,PR 2- where I added deallocation hooks to MIRI, which shows you when an allocation is deallcoated when it is tracked. - Made
once_cellmore flexiblePR- Changedonce_cell::*::Lazyto allowFnOnceclosures instead of justFnclosuresonce_cellis now in the process of getting merged into std, which is exciting
- Exposed useful traits in
packed_simdPR - Found subtle soundness holes in multiple crates:
- in
dashmap- soundness hole, PR - in
evmap- soundness hole - in
stowaway- soundness hole - in
logos- soundness hole, PR
- in