wal-g

Форк
0
/
compression.go 
33 строки · 717.0 Байт
1
package compression
2

3
import (
4
	"io"
5
)
6

7
type Compressor interface {
8
	NewWriter(writer io.Writer) io.WriteCloser
9
	FileExtension() string
10
}
11

12
type Decompressor interface {
13
	Decompress(src io.Reader) (io.ReadCloser, error)
14
	FileExtension() string
15
}
16

17
func GetDecompressorByCompressor(compressor Compressor) Decompressor {
18
	return FindDecompressor(compressor.FileExtension())
19
}
20

21
func FindDecompressor(fileExtension string) Decompressor {
22
	// cut the leading '.' (e.g. ".lz4" => "lz4")
23
	if len(fileExtension) > 0 && fileExtension[0] == '.' {
24
		fileExtension = fileExtension[1:]
25
	}
26

27
	for _, decompressor := range Decompressors {
28
		if decompressor.FileExtension() == fileExtension {
29
			return decompressor
30
		}
31
	}
32
	return nil
33
}
34

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.