Skip to main content

gam_runtime/
lib.rs

1mod cgroup_memory;
2
3pub mod loop_progress;
4pub mod process_monitor;
5pub mod resource;
6pub mod span;
7pub mod test_support;
8pub mod warm_start;
9
10/// The message carried by a panic payload, for the two payload shapes
11/// `std::panic!` / `unwrap` / `expect` actually produce (`&'static str` and
12/// `String`); anything else is reported as a non-string payload.
13pub fn panic_payload_message(payload: Box<dyn std::any::Any + Send>) -> String {
14    if let Some(message) = payload.downcast_ref::<&'static str>() {
15        (*message).to_string()
16    } else if let Some(message) = payload.downcast_ref::<String>() {
17        message.clone()
18    } else {
19        "non-string panic payload".to_string()
20    }
21}