Andrea Lattuada gave a talk at Rust Programming Language Conference (RustFest)

Andrea Lattuada gave the following talk at the Rust Programming Language Conference (RustFest): 


"A hammer you can only hold by the handle


Rust’s type system provides tools to ensure safe memory management, and safe concurrent access to data. What if we used those same tools to encode and enforce other API constraints? We can leverage affine types (non-Clone structs) to enforce that a user performs a series of operations in a certain order; or we can use structs as tokens representing the user’s ability to perform certain actions. And everything’s checked at compile time. We’ll see how these techniques let us encode complex API constraints, and make them self-documenting by preventing disallowed behaviour at compile time.