Skip to content

Commit 26a4035

Browse files
committed
tar: rename reader to iterator
Itarator has `next` function, iterates over tar files. When using from outside of module with `tar.` prefix makes more sense. var iter = tar.iterator(reader, null); while (try iter.next()) |file| { ... }
1 parent 183d733 commit 26a4035

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

lib/std/tar.zig

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -225,14 +225,16 @@ fn nullStr(str: []const u8) []const u8 {
225225
return str;
226226
}
227227

228-
pub fn tarReader(reader: anytype, diagnostics: ?*Options.Diagnostics) TarReader(@TypeOf(reader)) {
228+
/// Iterates over files in tar archive.
229+
/// `next` returns each file in `reader` tar archive.
230+
pub fn iterator(reader: anytype, diagnostics: ?*Options.Diagnostics) Iterator(@TypeOf(reader)) {
229231
return .{
230232
.reader = reader,
231233
.diagnostics = diagnostics,
232234
};
233235
}
234236

235-
fn TarReader(comptime ReaderType: type) type {
237+
fn Iterator(comptime ReaderType: type) type {
236238
return struct {
237239
reader: ReaderType,
238240
diagnostics: ?*Options.Diagnostics,
@@ -358,7 +360,7 @@ fn TarReader(comptime ReaderType: type) type {
358360
// Use just attributes from last extended header.
359361
self.initFile();
360362

361-
var rdr = paxReader(self.reader, @intCast(size));
363+
var rdr = paxIterator(self.reader, @intCast(size));
362364
while (try rdr.next()) |attr| {
363365
switch (attr.kind) {
364366
.path => {
@@ -393,10 +395,10 @@ fn TarReader(comptime ReaderType: type) type {
393395
};
394396
}
395397

396-
// Pax attributes reader.
397-
// Size is length of pax extended header in reader.
398-
fn paxReader(reader: anytype, size: usize) PaxReader(@TypeOf(reader)) {
399-
return PaxReader(@TypeOf(reader)){
398+
/// Pax attributes iterator.
399+
/// Size is length of pax extended header in reader.
400+
fn paxIterator(reader: anytype, size: usize) PaxIterator(@TypeOf(reader)) {
401+
return PaxIterator(@TypeOf(reader)){
400402
.reader = reader,
401403
.size = size,
402404
};
@@ -408,7 +410,7 @@ const PaxAttributeKind = enum {
408410
size,
409411
};
410412

411-
fn PaxReader(comptime ReaderType: type) type {
413+
fn PaxIterator(comptime ReaderType: type) type {
412414
return struct {
413415
size: usize, // cumulative size of all pax attributes
414416
reader: ReaderType,
@@ -508,8 +510,7 @@ pub fn pipeToFileSystem(dir: std.fs.Dir, reader: anytype, options: Options) !voi
508510
},
509511
}
510512

511-
var iter = tarReader(reader, options.diagnostics);
512-
513+
var iter = iterator(reader, options.diagnostics);
513514
while (try iter.next()) |file| {
514515
switch (file.kind) {
515516
.directory => {
@@ -601,7 +602,7 @@ test "tar stripComponents" {
601602
try expectEqualStrings("c", try stripComponents("a/b/c", 2));
602603
}
603604

604-
test "tar PaxReader" {
605+
test "tar PaxIterator" {
605606
const Attr = struct {
606607
kind: PaxAttributeKind,
607608
value: []const u8 = undefined,
@@ -699,10 +700,10 @@ test "tar PaxReader" {
699700

700701
outer: for (cases) |case| {
701702
var stream = std.io.fixedBufferStream(case.data);
702-
var rdr = paxReader(stream.reader(), case.data.len);
703+
var iter = paxIterator(stream.reader(), case.data.len);
703704

704705
var i: usize = 0;
705-
while (rdr.next() catch |err| {
706+
while (iter.next() catch |err| {
706707
if (case.err) |e| {
707708
try std.testing.expectEqual(e, err);
708709
continue;

lib/std/tar/test.zig

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
const std = @import("../std.zig");
2-
const builtin = @import("builtin");
32
const tar = std.tar;
4-
const assert = std.debug.assert;
3+
const testing = std.testing;
54

65
test "tar run Go test cases" {
76
const Case = struct {
@@ -318,33 +317,33 @@ test "tar run Go test cases" {
318317

319318
for (cases) |case| {
320319
var fsb = std.io.fixedBufferStream(case.data);
321-
var iter = tar.tarReader(fsb.reader(), null);
320+
var iter = tar.iterator(fsb.reader(), null);
322321
var i: usize = 0;
323322
while (iter.next() catch |err| {
324323
if (case.err) |e| {
325-
try std.testing.expectEqual(e, err);
324+
try testing.expectEqual(e, err);
326325
continue;
327326
} else {
328327
return err;
329328
}
330329
}) |actual| : (i += 1) {
331330
const expected = case.files[i];
332-
try std.testing.expectEqualStrings(expected.name, actual.name);
333-
try std.testing.expectEqual(expected.size, actual.size);
334-
try std.testing.expectEqual(expected.kind, actual.kind);
335-
try std.testing.expectEqual(expected.mode, actual.mode);
336-
try std.testing.expectEqualStrings(expected.link_name, actual.link_name);
331+
try testing.expectEqualStrings(expected.name, actual.name);
332+
try testing.expectEqual(expected.size, actual.size);
333+
try testing.expectEqual(expected.kind, actual.kind);
334+
try testing.expectEqual(expected.mode, actual.mode);
335+
try testing.expectEqualStrings(expected.link_name, actual.link_name);
337336

338337
if (case.chksums.len > i) {
339338
var md5writer = Md5Writer{};
340339
try actual.write(&md5writer);
341340
const chksum = md5writer.chksum();
342-
try std.testing.expectEqualStrings(case.chksums[i], &chksum);
341+
try testing.expectEqualStrings(case.chksums[i], &chksum);
343342
} else {
344343
if (!expected.truncated) try actual.skip(); // skip file content
345344
}
346345
}
347-
try std.testing.expectEqual(case.files.len, i);
346+
try testing.expectEqual(case.files.len, i);
348347
}
349348
}
350349

0 commit comments

Comments
 (0)