Function findBuffer [src]
TODO audit this logic
Prototype
pub fn findBuffer(buffer: []const u8) FindBufferError!EndRecord Parameters
buffer: []const u8 Possible Errors
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;
}