To clarify, with affine types you can guarantee that a value is used at most once, while linear types enforce that a value is used exactly once. Rust has the must-use directive that can be used to approximate linear types but it has severe limitations.