What happens if the double_input Rust function is declared extern but not no_mangle? When would you want a mangled extern Rust function?
Many C APIs take a callback function pointer, which in rust has the type `extern fn()`, and this is the primary use case for an `extern` function defined in Rust which doesn't have `#[no_mangle]` on it.