I have been returning
Ok<Option<foo>> when something might not be there, such as a failed lookup, and
Err<error> when there's been an error of some kind. However, I just looked at channel's try_recv() and see that it returns Err if there is nothing to read or if the channel is closed. Is that the pattern I should be using?
Getting Err is inconvenient in my case, because I want to supply a default value if the channel is empty and use ? to return if there's an error.