wire_framework/utils/panic_extractor.rs
1use tokio::task::JoinError;
2
3pub fn try_extract_panic_message(err: JoinError) -> String {
4 if err.is_panic() {
5 let panic = err.into_panic();
6 if let Some(panic_string) = panic.downcast_ref::<&'static str>() {
7 panic_string.to_string()
8 } else if let Some(panic_string) = panic.downcast_ref::<String>() {
9 panic_string.to_string()
10 } else {
11 "Unknown panic".to_string()
12 }
13 } else {
14 "Cancelled task".to_string()
15 }
16}