authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-03-12 15:41:10 -08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2021-03-12 15:41:10 -08:00
log81ff8a984327255c471d975433aa7bd434d2e787
treef65da83801949e182605a319426165899ad180a8
parent98892594ab379af8539e8e251c59d85e06ab5b93

util/modfile: split init and from_mapping


1 files changed, 11 insertions(+), 8 deletions(-)

src/util/modfile.zig+11-8
......@@ -30,13 +30,16 @@ pub const ModFile = struct {
3030 defer file.close();
3131 const input = try file.reader().readAllAlloc(alloc, mb);
3232 const doc = try yaml.parse(alloc, input);
33 return from_mapping(alloc, doc.mapping);
34 }
3335
34 const id = doc.mapping.get_string("id");
35 const name = doc.mapping.get("name").?.string;
36 const main = doc.mapping.get_string("main");
36 pub fn from_mapping(alloc: *std.mem.Allocator, mapping: yaml.Mapping) anyerror!Self {
37 const id = mapping.get_string("id");
38 const name = mapping.get("name").?.string;
39 const main = mapping.get_string("main");
3740
3841 const dep_list = &std.ArrayList(u.Dep).init(alloc);
39 if (doc.mapping.get("dependencies")) |dep_seq| {
42 if (mapping.get("dependencies")) |dep_seq| {
4043 if (dep_seq == .sequence) {
4144 for (dep_seq.sequence) |item| {
4245 var dtype: []const u8 = undefined;
......@@ -74,11 +77,11 @@ pub const ModFile = struct {
7477 .id = if (id.len == 0) try u.random_string(48) else id,
7578 .name = name,
7679 .main = main,
77 .c_include_dirs = try doc.mapping.get_string_array(alloc, "c_include_dirs"),
78 .c_source_flags = try doc.mapping.get_string_array(alloc, "c_source_flags"),
79 .c_source_files = try doc.mapping.get_string_array(alloc, "c_source_files"),
80 .c_include_dirs = try mapping.get_string_array(alloc, "c_include_dirs"),
81 .c_source_flags = try mapping.get_string_array(alloc, "c_source_flags"),
82 .c_source_files = try mapping.get_string_array(alloc, "c_source_files"),
8083 .deps = dep_list.items,
81 .yaml = doc.mapping,
84 .yaml = mapping,
8285 };
8386 }
8487};