diff options
| author | Chris Lu <chris.lu@gmail.com> | 2016-06-02 18:09:14 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2016-06-02 18:09:14 -0700 |
| commit | 5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44 (patch) | |
| tree | 2e4dd2ad0a618ab2b7cdebcdb9c503526c31e2e8 /weed/compress/delta_binary_pack32.go | |
| parent | caeffa3998adc060fa66c4cd77af971ff2d26c57 (diff) | |
| download | seaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.tar.xz seaweedfs-5ce6bbf07672bf3f3c8d26cd2ce0e3e853a47c44.zip | |
directory structure change to work with glide
glide has its own requirements. My previous workaround caused me some
code checkin errors. Need to fix this.
Diffstat (limited to 'weed/compress/delta_binary_pack32.go')
| -rw-r--r-- | weed/compress/delta_binary_pack32.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/weed/compress/delta_binary_pack32.go b/weed/compress/delta_binary_pack32.go new file mode 100644 index 000000000..42ae8d42d --- /dev/null +++ b/weed/compress/delta_binary_pack32.go @@ -0,0 +1,32 @@ +package compress + +import ( + "github.com/reducedb/encoding/cursor" + "github.com/reducedb/encoding/delta/bp32" +) + +// Compress compresses in[]int32 to out[]int32 +func Compress32(in []int32) (out []int32, err error) { + out = make([]int32, len(in)*2) + inpos := cursor.New() + outpos := cursor.New() + + if err = bp32.New().Compress(in, inpos, len(in), out, outpos); err != nil { + return nil, err + } + + return out[:outpos.Get()], nil +} + +// Uncompress uncompresses in[]int32 to out[]int32 +func Uncompress32(in []int32, buffer []int32) (out []int32, err error) { + out = buffer + inpos := cursor.New() + outpos := cursor.New() + + if err = bp32.New().Uncompress(in, inpos, len(in), out, outpos); err != nil { + return nil, err + } + + return out[:outpos.Get()], nil +} |
