Wow. #Rust is an unserious language. Unless you bend over backwards to fight the compiler and avoid the standard library, you cannot write code that doesn't try to terminate the calling process on arbitrary error conditions. https://news.ycombinator.com/item?id=43297487
Terminating the process is never an appropriate action in a library. The library has no way to know its caller's uptime constraints. Libraries should only return error codes to callers. Only applications can decide whether to bail out or not.