The Future Trait Has A Missing State
14 points by fanf
14 points by fanf
I don't really understand the problem here, and I think panicking when you attempt to poll a future after it has already completed is a fine behaviour.
To me, the behaviour of Fuse::poll when called on a terminated future is a smell akin to handling EBADF from syscalls. It too should panic because doing so indicates that there are deeper structural issues with your implementation that really ought to be fixed. There's nothing sensible that can or should be done here. Such an error should be immediately and loudly fatal.
The author clearly has expertise here which I will defer to, but I'm not sure I understand this argument. It seems like under what they are proposing, every future would be internalizing the business logic of MaybeDone? But then there is the possibility that this business logic is implemented incorrectly. Is that really what is wanted?