| ... | @@ -149,3 +149,18 @@ pub const Iterator = struct { | ... | @@ -149,3 +149,18 @@ pub const Iterator = struct { |
| 149 | type: sys.DT, | 149 | type: sys.DT, |
| 150 | }; | 150 | }; |
| 151 | }; | 151 | }; |
| | 152 | |
| | 153 | pub fn rename(self: Dir, old: [:0]const u8, new: [:0]const u8) !void { |
| | 154 | return sys.renameat(@intFromEnum(self.fd), old.ptr, @intFromEnum(self.fd), new.ptr); |
| | 155 | } |
| | 156 | pub fn renameC(self: Dir, old: []const u8, new: []const u8) !void { |
| | 157 | std.debug.assert(old.len <= sys.NAME_MAX); |
| | 158 | std.debug.assert(new.len <= sys.NAME_MAX); |
| | 159 | var old_buf: [sys.NAME_MAX + 1]u8 = undefined; |
| | 160 | var new_buf: [sys.NAME_MAX + 1]u8 = undefined; |
| | 161 | @memcpy(old_buf[0..old.len], old); |
| | 162 | @memcpy(new_buf[0..new.len], new); |
| | 163 | old_buf[old.len] = 0; |
| | 164 | new_buf[new.len] = 0; |
| | 165 | return rename(self, old_buf[0..old.len :0], new_buf[0..new.len :0]); |
| | 166 | } |