Source: https://cseweb.ucsd.edu/~yiying/RustStudy-PLDI20.pdf