Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
hd-community-waf / usr / local / share / lua / 5.1 / resty / nettle / buffer.lua
Size: Mime:
require "resty.nettle.types.buffer"

local lib        = require "resty.nettle.library"
local ffi        = require "ffi"
local ffi_gc     = ffi.gc
local ffi_new    = ffi.new
local ffi_cdef   = ffi.cdef
local ffi_typeof = ffi.typeof

ffi_cdef[[
void      nettle_buffer_init(struct nettle_buffer *buffer);
void      nettle_buffer_init_realloc(struct nettle_buffer *buffer, void *realloc_ctx, nettle_realloc_func *realloc);
void      nettle_buffer_init_size(struct nettle_buffer *buffer, size_t length, uint8_t *space);
void      nettle_buffer_clear(struct nettle_buffer *buffer);
void      nettle_buffer_reset(struct nettle_buffer *buffer);
int       nettle_buffer_grow(struct nettle_buffer *buffer, size_t length);
int       nettle_buffer_write(struct nettle_buffer *buffer, size_t length, const uint8_t *data);
uint8_t * nettle_buffer_space(struct nettle_buffer *buffer, size_t length);
int       nettle_buffer_copy(struct nettle_buffer *dst, const struct nettle_buffer *src);
]]

local buf = ffi_typeof "NETTLE_BUFFER"
local buffer = {}

function buffer.new()
    local b = ffi_gc(ffi_new(buf), lib.nettle_buffer_clear)
    lib.nettle_buffer_init(b)
    return b
end

return buffer