Rain showed that not all may be as simple as it seems to do it correctly.

In her presentation on async cancellation in Rust, she spoke pretty extensively on cancel safety and correctness, and I would recommend giving it a watch or read.

https://sunshowers.io/posts/cancelling-async-rust/