srctree

Gregory Mullen parent 9837a3f9 974ba2d2
dry parsing

inlinesplit
src/main.zig added: 35, removed: 27, total 8
@@ -321,7 +321,7 @@ const Timestamp = packed struct(i64) {
}
};
 
const Line = struct {
pub const Line = struct {
src_addr: Addr,
timestamp: i64,
extra: []const u8,
@@ -329,28 +329,9 @@ const Line = struct {
 
fn parseLine(mean: Meaningful) !?Line {
return switch (mean.class) {
.nginx => {
return .{
.src_addr = parser.nginx.parseAddr(mean.line) catch return null,
.timestamp = try parser.nginx.parseTime(mean.line),
.extra = try parser.nginx.parseExtra(mean.line),
};
},
 
.postfix => {
return .{
.src_addr = parser.postfix.parseAddr(mean.line) catch return null,
.timestamp = try parser.postfix.parseTime(mean.line),
.extra = try parser.postfix.parseExtra(mean.line),
};
},
.sshd => {
return .{
.src_addr = try parser.sshd.parseAddr(mean.line),
.timestamp = try parser.sshd.parseTime(mean.line),
.extra = try parser.sshd.parseExtra(mean.line),
};
},
.nginx => parser.nginx.parseLine(mean.line),
.postfix => parser.postfix.parseLine(mean.line),
.sshd => parser.sshd.parseLine(mean.line),
};
}
 
 
src/parser/nginx.zig added: 35, removed: 27, total 8
@@ -12,6 +12,15 @@ pub fn parseExtra(line: []const u8) ![]const u8 {
return "";
}
 
pub fn parseLine(line: []const u8) !?Line {
return .{
.src_addr = parseAddr(line) catch return null,
.timestamp = try parseTime(line),
.extra = try parseExtra(line),
};
}
 
const std = @import("std");
const indexOfScalar = std.mem.indexOfScalar;
const Addr = @import("../main.zig").Addr;
const Line = @import("../main.zig").Line;
 
src/parser/postfix.zig added: 35, removed: 27, total 8
@@ -17,7 +17,16 @@ pub fn parseExtra(line: []const u8) ![]const u8 {
return "";
}
 
pub fn parseLine(line: []const u8) !?Line {
return .{
.src_addr = parseAddr(line) catch return null,
.timestamp = try parseTime(line),
.extra = try parseExtra(line),
};
}
 
const std = @import("std");
const indexOf = std.mem.indexOf;
const indexOfScalarPos = std.mem.indexOfScalarPos;
const Addr = @import("../main.zig").Addr;
const Line = @import("../main.zig").Line;
 
src/parser/sshd.zig added: 35, removed: 27, total 8
@@ -15,6 +15,15 @@ pub fn parseExtra(line: []const u8) ![]const u8 {
return "";
}
 
pub fn parseLine(line: []const u8) !?Line {
return .{
.src_addr = parseAddr(line) catch return null,
.timestamp = try parseTime(line),
.extra = try parseExtra(line),
};
}
 
const std = @import("std");
const indexOf = std.mem.indexOf;
const Addr = @import("../main.zig").Addr;
const Line = @import("../main.zig").Line;