| package zstd |
| |
| /* |
| #define ZSTD_STATIC_LINKING_ONLY |
| #include "zstd.h" |
| */ |
| import "C" |
| |
| // ErrorCode is an error returned by the zstd library. |
| type ErrorCode int |
| |
| // Error returns the error string given by zstd |
| func (e ErrorCode) Error() string { |
| return C.GoString(C.ZSTD_getErrorName(C.size_t(e))) |
| } |
| |
| func cIsError(code int) bool { |
| return int(C.ZSTD_isError(C.size_t(code))) != 0 |
| } |
| |
| // getError returns an error for the return code, or nil if it's not an error |
| func getError(code int) error { |
| if code < 0 && cIsError(code) { |
| return ErrorCode(code) |
| } |
| return nil |
| } |
| |
| // IsDstSizeTooSmallError returns whether the error correspond to zstd standard sDstSizeTooSmall error |
| func IsDstSizeTooSmallError(e error) bool { |
| if e != nil && e.Error() == "Destination buffer is too small" { |
| return true |
| } |
| return false |
| } |