This will land in 1.21. We might want to incorporate it: https://github.com/rust-lang/rust/pull/43459