Hello there,

I'm trying to write a function that should return a different types depending on a condition. A straightforward example is finding the median of a slice:

```
fn median_finding_nlogn(v: &mut[i32]) -> f32 {
let l = v.len();
v.sort();
if l % 2 == 1 {
return v[l / 2] as f32;
}
return (v[l / 2] + v[(l / 2) - 1]) as f32 / 2.0
}
```

Here, if the length of the slice is odd, I know that my median will be the middle element, which is a `i32`

; instead, if the length of the slice is even, the median will (possibily) be a `f32`

number. Although this is not strictly related to Rust, is there a way to handle these two types in the return value?