Comment by andyferris

1 day ago

I think I'm lost. If I give a mutable reference to a function... I can't access it (even read it) until it returns, no?

What is different?

Let's say a function "foo" calls "fn bar(_: &mut T) -> ()".

When passing a mutable reference, the lifetime of the object is largely decided by "foo" (with some caveats).

Now, let's say that "foo" instead calls "fn bar(_: T) -> T".

When passing the object itself, the lifetime is largely decided/decide-able by "bar".