class BinData::Transform::Zstd

gem install zstd-ruby
Transforms a zstd compressed data stream.

def after_read_transform

def after_read_transform
  raise IOError, "didn't read all data" unless @read.empty?
end

def after_write_transform

def after_write_transform
  chain_write(::Zstd::compress(@write))
end

def initialize(read_length)

def initialize(read_length)
  super()
  @length = read_length
end

def read(n)

def read(n)
  @read ||= ::Zstd::decompress(chain_read(@length))
  @read.slice!(0...n)
end

def write(data)

def write(data)
  @write ||= create_empty_binary_string
  @write << data
end