From 04dc3a14a6ff7ae0701922b56b312740aa075c3a Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Wed, 7 Apr 2021 19:55:38 -0700 Subject: [PATCH] util/modfile- add dep_list_by_name func --- src/util/modfile.zig | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/util/modfile.zig b/src/util/modfile.zig index 3451aa002da89b6df95c2cccf62ef6de7337bdc5..d5a1a7ca8683781ca66907f42a81d5bd977730c2 100644 --- a/src/util/modfile.zig +++ b/src/util/modfile.zig @@ -38,8 +38,24 @@ pub const ModFile = struct { const name = mapping.get("name").?.string; const main = mapping.get_string("main"); + const dep_list = try dep_list_by_name(alloc, mapping, "dependencies"); + + return Self{ + .alloc = alloc, + .id = if (id.len == 0) try u.random_string(48) else id, + .name = name, + .main = main, + .c_include_dirs = try mapping.get_string_array(alloc, "c_include_dirs"), + .c_source_flags = try mapping.get_string_array(alloc, "c_source_flags"), + .c_source_files = try mapping.get_string_array(alloc, "c_source_files"), + .deps = dep_list.items, + .yaml = mapping, + }; + } + + fn dep_list_by_name(alloc: *std.mem.Allocator, mapping: yaml.Mapping, prop: []const u8) !*std.ArrayList(u.Dep) { const dep_list = &std.ArrayList(u.Dep).init(alloc); - if (mapping.get("dependencies")) |dep_seq| { + if (mapping.get(prop)) |dep_seq| { if (dep_seq == .sequence) { for (dep_seq.sequence) |item| { var dtype: []const u8 = undefined; @@ -81,17 +97,6 @@ pub const ModFile = struct { } } } - - return Self{ - .alloc = alloc, - .id = if (id.len == 0) try u.random_string(48) else id, - .name = name, - .main = main, - .c_include_dirs = try mapping.get_string_array(alloc, "c_include_dirs"), - .c_source_flags = try mapping.get_string_array(alloc, "c_source_flags"), - .c_source_files = try mapping.get_string_array(alloc, "c_source_files"), - .deps = dep_list.items, - .yaml = mapping, - }; + return dep_list; } }; -- 2.54.0