Skip to content

Is it possible to resuse buffer? #13

@zhmt

Description

@zhmt

It seems that it is not possible to resuse buffer with current API , how about this?

proc myCompress*(src: sink openArray[byte], dst : var seq[byte],  level: int = 3): seq[byte] =
  let src_ptr = unsafeAddr(src[0])
  let src_cap = cast[csize_t](src.len)
  let dst_cap = ZSTD_compressBound(src_cap)
  dst.setLen(dst_cap)
  let res: uint = ZSTD_compress(addr(dst[0]), dst_cap, src_ptr, src_cap, level.cint)
  if ZSTD_isError(res):
    assert(false, $ZSTD_getErrorName(res))
  dst.setLen(res)
  return dst

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions