I'm no Rust expert, but it would be ok if you would do borrows there.
let x = compute_x();
f(&x);
g(&x);
Otherwise you have moves there. Now it depends on the API, it may want the value and not the reference (a borrow).