Э
fn bar(cancel_flag: bool) {
println!("Hello");
if cancel_flag { panic!(); }
println!("World");
}
async fn bar() {
println!("Hello");
qwe().await;
println!("World");
}
Паника уронит тебе всё вплоть до первого detached треда / catch_unwind / джойна с обработкой паники без паники.А вот кенсел в await тебе ничего не уронит.
Когда у тебя что-то паникует, оно паникует очень громко. А когда у тебя что-то кенселится, оно кенселится очень тихо.
В остальном разницы между функциями практически нет, и думать тебе про эти функции надо примерно одинаково.
