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.