mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 22:35:24 +00:00
implement new stat functionality for WASI
This commit is contained in:
parent
225f196842
commit
faf783e595
@ -282,15 +282,26 @@ pub const File = struct {
|
||||
.inode = st.ino,
|
||||
.size = @bitCast(u64, st.size),
|
||||
.mode = st.mode,
|
||||
.kind = switch (st.mode & os.S_IFMT) {
|
||||
os.S_IFBLK => .BlockDevice,
|
||||
os.S_IFCHR => .CharacterDevice,
|
||||
os.S_IFDIR => .Directory,
|
||||
os.S_IFIFO => .NamedPipe,
|
||||
os.S_IFLNK => .SymLink,
|
||||
os.S_IFREG => .File,
|
||||
os.S_IFSOCK => .UnixDomainSocket,
|
||||
else => .Unknown,
|
||||
.kind = switch (builtin.os.tag) {
|
||||
.wasi => switch (st.filetype) {
|
||||
os.FILETYPE_BLOCK_DEVICE => Kind.BlockDevice,
|
||||
os.FILETYPE_CHARACTER_DEVICE => Kind.CharacterDevice,
|
||||
os.FILETYPE_DIRECTORY => Kind.Directory,
|
||||
os.FILETYPE_SYMBOLIC_LINK => Kind.SymLink,
|
||||
os.FILETYPE_REGULAR_FILE => Kind.File,
|
||||
os.FILETYPE_SOCKET_STREAM, os.FILETYPE_SOCKET_DGRAM => Kind.UnixDomainSocket,
|
||||
else => Kind.Unknown,
|
||||
},
|
||||
else => switch (st.mode & os.S_IFMT) {
|
||||
os.S_IFBLK => Kind.BlockDevice,
|
||||
os.S_IFCHR => Kind.CharacterDevice,
|
||||
os.S_IFDIR => Kind.Directory,
|
||||
os.S_IFIFO => Kind.NamedPipe,
|
||||
os.S_IFLNK => Kind.SymLink,
|
||||
os.S_IFREG => Kind.File,
|
||||
os.S_IFSOCK => Kind.UnixDomainSocket,
|
||||
else => Kind.Unknown,
|
||||
},
|
||||
},
|
||||
.atime = @as(i128, atime.tv_sec) * std.time.ns_per_s + atime.tv_nsec,
|
||||
.mtime = @as(i128, mtime.tv_sec) * std.time.ns_per_s + mtime.tv_nsec,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user