Function findBuffer [src]

TODO audit this logic

Prototype

pub fn findBuffer(buffer: []const u8) FindBufferError!EndRecord

Parameters

buffer: []const u8

Possible Errors

ZipNoEndRecord
ZipTruncated

Source

pub fn findBuffer(buffer: []const u8) FindBufferError!EndRecord { const pos = std.mem.lastIndexOf(u8, buffer, &end_record_sig) orelse return error.ZipNoEndRecord; if (pos + @sizeOf(EndRecord) > buffer.len) return error.EndOfStream; const record_ptr: *EndRecord = @ptrCast(buffer[pos..][0..@sizeOf(EndRecord)]); var record = record_ptr.*; if (!is_le) std.mem.byteSwapAllFields(EndRecord, &record); return record; }