From 41b9ffd04b86caf1ff81c6b26cbba1e10b06432e Mon Sep 17 00:00:00 2001 From: Tilo-K Date: Thu, 22 Aug 2024 09:48:04 +0200 Subject: [PATCH] feat: add validation --- src/csv.zig | 8 +++++--- src/main.zig | 9 +++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/csv.zig b/src/csv.zig index 3a3c84e..152857e 100644 --- a/src/csv.zig +++ b/src/csv.zig @@ -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" { diff --git a/src/main.zig b/src/main.zig index f080874..21d6e52 100644 --- a/src/main.zig +++ b/src/main.zig @@ -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(); }