mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	* update github.com/PuerkitoBio/goquery * update github.com/alecthomas/chroma * update github.com/blevesearch/bleve/v2 * update github.com/caddyserver/certmagic * update github.com/go-enry/go-enry/v2 * update github.com/go-git/go-billy/v5 * update github.com/go-git/go-git/v5 * update github.com/go-redis/redis/v8 * update github.com/go-testfixtures/testfixtures/v3 * update github.com/jaytaylor/html2text * update github.com/json-iterator/go * update github.com/klauspost/compress * update github.com/markbates/goth * update github.com/mattn/go-isatty * update github.com/mholt/archiver/v3 * update github.com/microcosm-cc/bluemonday * update github.com/minio/minio-go/v7 * update github.com/prometheus/client_golang * update github.com/unrolled/render * update github.com/xanzy/go-gitlab * update github.com/yuin/goldmark * update github.com/yuin/goldmark-highlighting Co-authored-by: techknowlogick <techknowlogick@gitea.io>
		
			
				
	
	
		
			158 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
| // Package lz4 implements reading and writing lz4 compressed data.
 | |
| //
 | |
| // The package supports both the LZ4 stream format,
 | |
| // as specified in http://fastcompression.blogspot.fr/2013/04/lz4-streaming-format-final.html,
 | |
| // and the LZ4 block format, defined at
 | |
| // http://fastcompression.blogspot.fr/2011/05/lz4-explained.html.
 | |
| //
 | |
| // See https://github.com/lz4/lz4 for the reference C implementation.
 | |
| package lz4
 | |
| 
 | |
| import (
 | |
| 	"github.com/pierrec/lz4/v4/internal/lz4block"
 | |
| 	"github.com/pierrec/lz4/v4/internal/lz4errors"
 | |
| )
 | |
| 
 | |
| func _() {
 | |
| 	// Safety checks for duplicated elements.
 | |
| 	var x [1]struct{}
 | |
| 	_ = x[lz4block.CompressionLevel(Fast)-lz4block.Fast]
 | |
| 	_ = x[Block64Kb-BlockSize(lz4block.Block64Kb)]
 | |
| 	_ = x[Block256Kb-BlockSize(lz4block.Block256Kb)]
 | |
| 	_ = x[Block1Mb-BlockSize(lz4block.Block1Mb)]
 | |
| 	_ = x[Block4Mb-BlockSize(lz4block.Block4Mb)]
 | |
| }
 | |
| 
 | |
| // CompressBlockBound returns the maximum size of a given buffer of size n, when not compressible.
 | |
| func CompressBlockBound(n int) int {
 | |
| 	return lz4block.CompressBlockBound(n)
 | |
| }
 | |
| 
 | |
| // UncompressBlock uncompresses the source buffer into the destination one,
 | |
| // and returns the uncompressed size.
 | |
| //
 | |
| // The destination buffer must be sized appropriately.
 | |
| //
 | |
| // An error is returned if the source data is invalid or the destination buffer is too small.
 | |
| func UncompressBlock(src, dst []byte) (int, error) {
 | |
| 	return lz4block.UncompressBlock(src, dst, nil)
 | |
| }
 | |
| 
 | |
| // UncompressBlockWithDict uncompresses the source buffer into the destination one using a
 | |
| // dictionary, and returns the uncompressed size.
 | |
| //
 | |
| // The destination buffer must be sized appropriately.
 | |
| //
 | |
| // An error is returned if the source data is invalid or the destination buffer is too small.
 | |
| func UncompressBlockWithDict(src, dst, dict []byte) (int, error) {
 | |
| 	return lz4block.UncompressBlock(src, dst, dict)
 | |
| }
 | |
| 
 | |
| // A Compressor compresses data into the LZ4 block format.
 | |
| // It uses a fast compression algorithm.
 | |
| //
 | |
| // A Compressor is not safe for concurrent use by multiple goroutines.
 | |
| //
 | |
| // Use a Writer to compress into the LZ4 stream format.
 | |
| type Compressor struct{ c lz4block.Compressor }
 | |
| 
 | |
| // CompressBlock compresses the source buffer src into the destination dst.
 | |
| //
 | |
| // If compression is successful, the first return value is the size of the
 | |
| // compressed data, which is always >0.
 | |
| //
 | |
| // If dst has length at least CompressBlockBound(len(src)), compression always
 | |
| // succeeds. Otherwise, the first return value is zero. The error return is
 | |
| // non-nil if the compressed data does not fit in dst, but it might fit in a
 | |
| // larger buffer that is still smaller than CompressBlockBound(len(src)). The
 | |
| // return value (0, nil) means the data is likely incompressible and a buffer
 | |
| // of length CompressBlockBound(len(src)) should be passed in.
 | |
| func (c *Compressor) CompressBlock(src, dst []byte) (int, error) {
 | |
| 	return c.c.CompressBlock(src, dst)
 | |
| }
 | |
| 
 | |
| // CompressBlock compresses the source buffer into the destination one.
 | |
| // This is the fast version of LZ4 compression and also the default one.
 | |
| //
 | |
| // The argument hashTable is scratch space for a hash table used by the
 | |
| // compressor. If provided, it should have length at least 1<<16. If it is
 | |
| // shorter (or nil), CompressBlock allocates its own hash table.
 | |
| //
 | |
| // The size of the compressed data is returned.
 | |
| //
 | |
| // If the destination buffer size is lower than CompressBlockBound and
 | |
| // the compressed size is 0 and no error, then the data is incompressible.
 | |
| //
 | |
| // An error is returned if the destination buffer is too small.
 | |
| 
 | |
| // CompressBlock is equivalent to Compressor.CompressBlock.
 | |
| // The final argument is ignored and should be set to nil.
 | |
| //
 | |
| // This function is deprecated. Use a Compressor instead.
 | |
| func CompressBlock(src, dst []byte, _ []int) (int, error) {
 | |
| 	return lz4block.CompressBlock(src, dst)
 | |
| }
 | |
| 
 | |
| // A CompressorHC compresses data into the LZ4 block format.
 | |
| // Its compression ratio is potentially better than that of a Compressor,
 | |
| // but it is also slower and requires more memory.
 | |
| //
 | |
| // A Compressor is not safe for concurrent use by multiple goroutines.
 | |
| //
 | |
| // Use a Writer to compress into the LZ4 stream format.
 | |
| type CompressorHC struct {
 | |
| 	// Level is the maximum search depth for compression.
 | |
| 	// Values <= 0 mean no maximum.
 | |
| 	Level CompressionLevel
 | |
| 	c     lz4block.CompressorHC
 | |
| }
 | |
| 
 | |
| // CompressBlock compresses the source buffer src into the destination dst.
 | |
| //
 | |
| // If compression is successful, the first return value is the size of the
 | |
| // compressed data, which is always >0.
 | |
| //
 | |
| // If dst has length at least CompressBlockBound(len(src)), compression always
 | |
| // succeeds. Otherwise, the first return value is zero. The error return is
 | |
| // non-nil if the compressed data does not fit in dst, but it might fit in a
 | |
| // larger buffer that is still smaller than CompressBlockBound(len(src)). The
 | |
| // return value (0, nil) means the data is likely incompressible and a buffer
 | |
| // of length CompressBlockBound(len(src)) should be passed in.
 | |
| func (c *CompressorHC) CompressBlock(src, dst []byte) (int, error) {
 | |
| 	return c.c.CompressBlock(src, dst, lz4block.CompressionLevel(c.Level))
 | |
| }
 | |
| 
 | |
| // CompressBlockHC is equivalent to CompressorHC.CompressBlock.
 | |
| // The final two arguments are ignored and should be set to nil.
 | |
| //
 | |
| // This function is deprecated. Use a CompressorHC instead.
 | |
| func CompressBlockHC(src, dst []byte, depth CompressionLevel, _, _ []int) (int, error) {
 | |
| 	return lz4block.CompressBlockHC(src, dst, lz4block.CompressionLevel(depth))
 | |
| }
 | |
| 
 | |
| const (
 | |
| 	// ErrInvalidSourceShortBuffer is returned by UncompressBlock or CompressBLock when a compressed
 | |
| 	// block is corrupted or the destination buffer is not large enough for the uncompressed data.
 | |
| 	ErrInvalidSourceShortBuffer = lz4errors.ErrInvalidSourceShortBuffer
 | |
| 	// ErrInvalidFrame is returned when reading an invalid LZ4 archive.
 | |
| 	ErrInvalidFrame = lz4errors.ErrInvalidFrame
 | |
| 	// ErrInternalUnhandledState is an internal error.
 | |
| 	ErrInternalUnhandledState = lz4errors.ErrInternalUnhandledState
 | |
| 	// ErrInvalidHeaderChecksum is returned when reading a frame.
 | |
| 	ErrInvalidHeaderChecksum = lz4errors.ErrInvalidHeaderChecksum
 | |
| 	// ErrInvalidBlockChecksum is returned when reading a frame.
 | |
| 	ErrInvalidBlockChecksum = lz4errors.ErrInvalidBlockChecksum
 | |
| 	// ErrInvalidFrameChecksum is returned when reading a frame.
 | |
| 	ErrInvalidFrameChecksum = lz4errors.ErrInvalidFrameChecksum
 | |
| 	// ErrOptionInvalidCompressionLevel is returned when the supplied compression level is invalid.
 | |
| 	ErrOptionInvalidCompressionLevel = lz4errors.ErrOptionInvalidCompressionLevel
 | |
| 	// ErrOptionClosedOrError is returned when an option is applied to a closed or in error object.
 | |
| 	ErrOptionClosedOrError = lz4errors.ErrOptionClosedOrError
 | |
| 	// ErrOptionInvalidBlockSize is returned when
 | |
| 	ErrOptionInvalidBlockSize = lz4errors.ErrOptionInvalidBlockSize
 | |
| 	// ErrOptionNotApplicable is returned when trying to apply an option to an object not supporting it.
 | |
| 	ErrOptionNotApplicable = lz4errors.ErrOptionNotApplicable
 | |
| 	// ErrWriterNotClosed is returned when attempting to reset an unclosed writer.
 | |
| 	ErrWriterNotClosed = lz4errors.ErrWriterNotClosed
 | |
| )
 |