feat: add validation

This commit is contained in:
2024-08-22 09:48:04 +02:00
parent ad9bca9c65
commit 41b9ffd04b
2 changed files with 12 additions and 5 deletions

View File

@@ -57,8 +57,8 @@ const CsvFile = struct {
entries: std.ArrayList(std.ArrayList([]const u8)),
pub fn isValid(self: CsvFile) bool {
const colNum = self.header.items.len();
for (self.entries) |entry| {
const colNum = self.header.items.len;
for (self.entries.items) |entry| {
if (entry.items.len != colNum) {
return false;
}
@@ -68,7 +68,7 @@ const CsvFile = struct {
}
};
pub fn loadFile(filepath: []const u8) !void {
pub fn loadFile(filepath: []const u8) !CsvFile {
const alloc = std.heap.page_allocator;
var file = try std.fs.cwd().openFile(filepath, .{});
defer file.close();
@@ -101,6 +101,8 @@ pub fn loadFile(filepath: []const u8) !void {
}
_ = try entries.append(entr);
}
return CsvFile{ .entries = entries, .header = headerList };
}
test "Determine delimiter" {

View File

@@ -22,7 +22,12 @@ pub fn main() !void {
return;
}
try csv.loadFile(filepath);
var file = try csv.loadFile(filepath);
const valid = file.isValid();
if (valid) {
_ = try stdout.write("Csv is valid\n");
} else {
_ = try stdout.write("Csv is not valid\n");
}
_ = try bw.flush();
}