&Fd has to actually be a pointer to a variable of type
Fd elsewhere, whereas a
BorrowedFd has no such requirement. Defining such a variable may be inconvenient in some use-cases. The lifetime restrictions of
BorrowedFd exist entirely in the type system.
You can read the motivation in this RFC.
&Fd would add a layer of indirection and not be FFI compatible with