Можно ли вернуть в Rust заимствованный или принадлежащий тип?

В следующем коде, как я могу вернуть ссылкуfloor вместо нового объекта? Можно ли позволить функции возвращать заимствованную ссылку или собственное значение?

extern crate num; // 0.2.0

use num::bigint::BigInt;

fn cal(a: BigInt, b: BigInt, floor: &BigInt) -> BigInt {
    let c: BigInt = a - b;
    if c.ge(floor) {
        c
    } else {
        floor.clone()
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос