tangled
alpha
login
or
join now
altagos.dev
/
austin-converter
0
fork
atom
this repo has no description
0
fork
atom
overview
issues
pulls
pipelines
add: progress report
altagos.dev
8 months ago
995c3731
4ff9173b
verified
This commit was signed with the committer's
known signature
.
altagos.dev
SSH Key Fingerprint:
SHA256:UbTjEcCZlc6GzQWLCuDK3D//HESWD2xFPkzue9XMras=
+21
-12
2 changed files
expand all
collapse all
unified
split
src
austin.zig
main.zig
+2
-1
src/austin.zig
···
82
82
return .{ .arena = arena };
83
83
}
84
84
85
85
-
pub fn parse(self: *Parser, raw_reader: anytype) !Profile {
85
85
+
pub fn parse(self: *Parser, raw_reader: anytype, progress: *std.Progress.Node) !Profile {
86
86
var buffered_reader = std.io.bufferedReader(raw_reader);
87
87
var reader = buffered_reader.reader();
88
88
···
102
102
var line_num: usize = 1;
103
103
while (true) : (line_num += 1) {
104
104
defer line.clearAndFree();
105
105
+
defer progress.completeOne();
105
106
106
107
try reader.streamUntilDelimiter(line.writer(), '\n', null);
107
108
+19
-11
src/main.zig
···
46
46
return;
47
47
}
48
48
49
49
+
var progress = std.Progress.start(.{ .root_name = "Austin Converter" });
50
50
+
49
51
var parser: austin.austin.Parser = .init(allocator);
50
52
var profile: austin.austin.Profile = undefined;
51
51
-
if (options.positionals.len == 0) {
52
52
-
profile = try parser.parse(std.io.getStdIn().reader());
53
53
-
} else {
54
54
-
const path = std.fs.cwd().realpathAlloc(allocator, options.positionals[0]) catch |err| {
55
55
-
std.log.err("Invalid file path ({}): {s}", .{ err, options.positionals[0] });
56
56
-
return;
57
57
-
};
58
58
-
defer allocator.free(path);
59
53
60
60
-
const file = try std.fs.openFileAbsolute(path, .{});
61
61
-
defer file.close();
54
54
+
{
55
55
+
var node = progress.start("Parsing Austin file", 0);
56
56
+
defer node.end();
62
57
63
63
-
profile = try parser.parse(file.reader());
58
58
+
if (options.positionals.len == 0) {
59
59
+
profile = try parser.parse(std.io.getStdIn().reader(), &node);
60
60
+
} else {
61
61
+
const path = std.fs.cwd().realpathAlloc(allocator, options.positionals[0]) catch |err| {
62
62
+
std.log.err("Invalid file path ({}): {s}", .{ err, options.positionals[0] });
63
63
+
return;
64
64
+
};
65
65
+
defer allocator.free(path);
66
66
+
67
67
+
const file = try std.fs.openFileAbsolute(path, .{});
68
68
+
defer file.close();
69
69
+
70
70
+
profile = try parser.parse(file.reader(), &node);
71
71
+
}
64
72
}
65
73
66
74
std.log.info("num samples: {} - meta: {}", .{ profile.samples.len, profile.meta });