diff --git a/git.zig b/git.zig index 0791b8aab888844b9c9f40d377dddff5d4e08a0e..2b721cb196a717c339e0ef00a0babbef51b5ec08 100644 --- a/git.zig +++ b/git.zig @@ -364,6 +364,21 @@ pub const Tree = struct { return o; } + pub fn find(self: Tree, name: string) ?Object { + for (self.children) |item| { + if (std.ascii.eqlIgnoreCase(item.name, name)) { + return item; + } + } + return null; + } + + pub fn findBlob(self: Tree, name: string) ?Object { + const o = self.find(name) orelse return null; + if (o.id != .blob) return null; + return o; + } + pub const Object = struct { mode: Mode, id: @This().Id,