Function appendLz [src]

Fetch an LZ sequence (length, distance) from inside the buffer

Prototype

pub fn appendLz( self: *AccumBuffer, allocator: Allocator, len: usize, dist: usize, writer: *Writer, ) !void

Parameters

self: *AccumBufferallocator: Allocatorlen: usizedist: usizewriter: *Writer

Source

pub fn appendLz( self: *AccumBuffer, allocator: Allocator, len: usize, dist: usize, writer: *Writer, ) !void { _ = writer; const buf_len = self.buf.items.len; if (dist > buf_len) return error.CorruptInput; try self.buf.ensureUnusedCapacity(allocator, len); const buffer = self.buf.allocatedSlice(); const src = buffer[buf_len - dist ..][0..len]; const dst = buffer[buf_len..][0..len]; // This is not a @memmove; it intentionally repeats patterns caused by // iterating one byte at a time. for (dst, src) |*d, s| d.* = s; self.buf.items.len = buf_len + len; self.len += len; }