# nghttp2_hd_deflate_hd2

## Synopsis

#include <nghttp2/nghttp2.h>

nghttp2_ssize nghttp2_hd_deflate_hd2(nghttp2_hd_deflater *deflater, uint8_t *buf, size_t buflen, const nghttp2_nv *nva, size_t nvlen)

  Deflates the nva, which has the nvlen name/value pairs, into the buf of length buflen.

  If buf is not large enough to store the deflated header block, this function fails with `nghttp2_error.NGHTTP2_ERR_INSUFF_BUFSIZE`. The caller should use `nghttp2_hd_deflate_bound()` to know the upper bound of buffer size required to deflate given header name/value pairs.

  Once this function fails, subsequent call of this function always returns `nghttp2_error.NGHTTP2_ERR_HEADER_COMP`.

  After this function returns, it is safe to delete the nva.

  This function returns the number of bytes written to buf if it succeeds, or one of the following negative error codes:

  `nghttp2_error.NGHTTP2_ERR_NOMEM`

    Out of memory.

  `nghttp2_error.NGHTTP2_ERR_HEADER_COMP`

    Deflation process has failed.

  `nghttp2_error.NGHTTP2_ERR_INSUFF_BUFSIZE`

    The provided buflen size is too small to hold the output.