authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-09-01 22:39:32-07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2026-09-01 22:39:32-07:00
log1163f0e7be1400c7e2f80b5719114a7d1dc2cd36
tree8fbf60b2bf429c417ae15eaa3d636f6296ffea66
parentca10dac88432ed0145b43d47c27a04ad7e4858c9
signature Signed by SSH key SHA256:4hHJbtBRU58AYXwjL7fkz2fnQHdiye8x1QpTCQ0sHNw

make File.Kind sys.DT


2 files changed, 12 insertions(+), 20 deletions(-)

Dir.zig+1-1
...@@ -121,7 +121,7 @@ pub fn makePath(self: Dir, sub_path: [:0]const u8) !void {...@@ -121,7 +121,7 @@ pub fn makePath(self: Dir, sub_path: [:0]const u8) !void {
121 error.EISDIR => break :check_dir,121 error.EISDIR => break :check_dir,
122 else => |e| return e,122 else => |e| return e,
123 };123 };
124 if (fstat.kind() != .directory) return error.NotDir;124 if (fstat.kind() != .DIR) return error.NotDir;
125 }125 }
126 },126 },
127 error.ENOENT => |e| {127 error.ENOENT => |e| {
File.zig+11-19
...@@ -162,19 +162,20 @@ pub const Stat = struct {...@@ -162,19 +162,20 @@ pub const Stat = struct {
162 };162 };
163 }163 }
164164
165 pub fn kind(self: Stat) Kind {165 pub fn kind(self: Stat) sys.DT {
166 const m = self.mode & sys.S.IFMT;166 const m = self.mode & sys.S.IFMT;
167 switch (m) {167 switch (m) {
168 sys.S.IFBLK => return .block_device,168 sys.S.IFBLK => return .BLK,
169 sys.S.IFCHR => return .character_device,169 sys.S.IFCHR => return .CHR,
170 sys.S.IFIFO => return .named_pipe,170 sys.S.IFIFO => return .FIFO,
171 sys.S.IFREG => return .file,171 sys.S.IFREG => return .REG,
172 sys.S.IFDIR => return .directory,172 sys.S.IFDIR => return .DIR,
173 sys.S.IFLNK => return .symlink,173 sys.S.IFLNK => return .LNK,
174 sys.S.IFSOCK => return .unix_socket,174 sys.S.IFSOCK => return .SOCK,
175 sys.S.IFWHT => return .WHT,
175 else => {},176 else => {},
176 }177 }
177 return .unknown;178 return .UNKNOWN;
178 }179 }
179};180};
180181
...@@ -182,16 +183,7 @@ pub const INode = sys.ino_t;...@@ -182,16 +183,7 @@ pub const INode = sys.ino_t;
182183
183pub const Mode = sys.mode_t;184pub const Mode = sys.mode_t;
184185
185pub const Kind = enum {186pub const Kind = sys.DT;
186 block_device,
187 character_device,
188 named_pipe,
189 file,
190 directory,
191 symlink,
192 unix_socket,
193 unknown,
194};
195187
196/// Maps entire file content into memory with a single syscall.188/// Maps entire file content into memory with a single syscall.
197/// Release with `nfs.munmap`.189/// Release with `nfs.munmap`.