v1.8.0: new module `oserror`
This version of the library includes working replacements for error predicates in os, via a new sub-package oserror.
These new functions oserror.IsTimeout(), oserror.IsExist(), oserror.IsNotExist() and oserror.IsPermission() can recognize the same errors as their analog in package os, with the following improvements:
- they are able to peek through layers of error wrappers, which the functions in
oscannot; - they are able to recognize errors across the network, through
Encode/Decodecycles.
Note that the new functions will not be able to identify os errors encoded using a previous version of the library, unless they were encoded on exactly the same OS / platform combination (identified by GOARCH/GOOS). Therefore, care should be taken to ensure all components in a distributed system are upgraded to the newer version before the predicates can be used safely for errors transported over the network.