Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › compiler/ › resinator/ › cvtres.zig › parseResInto
parseResInto
cvtres.parseResInto
pub fn parseResInto (resources : *ParsedResources , reader : *std .Io .Reader , options : ParseResOptions ) !void
File
Code
pub fn parseResInto (resources : *ParsedResources , reader : *std .Io .Reader , options : ParseResOptions ) !void {
const allocator = resources .allocator ;
var bytes_remaining : u64 = options .max_size ;
{
const first_resource_and_size = try parseResource (allocator , reader , bytes_remaining );
defer first_resource_and_size .resource .deinit (allocator );
if (!first_resource_and_size .resource .is32BitPreface ()) return error .InvalidPreface ;
bytes_remaining -= first_resource_and_size .total_size ;
}
while (bytes_remaining != 0 ) {
const resource_and_size = try parseResource (allocator , reader , bytes_remaining );
if (options .skip_zero_data_resources and resource_and_size .resource .data .len == 0 ) {
resource_and_size .resource .deinit (allocator );
} else if (options .skip_dlginclude_resources and resource_and_size .resource .isDlgInclude ()) {
resource_and_size .resource .deinit (allocator );
} else {
errdefer resource_and_size .resource .deinit (allocator );
try resources .list .append (allocator , resource_and_size .resource );
}
bytes_remaining -= resource_and_size .total_size ;
}
}