Diverging Functions in Rust