36 lines
		
	
	
		
			812 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			812 B
		
	
	
	
		
			Go
		
	
	
	
| 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
 | |
| }
 |