Unsafe runtime downcasting for Rust