Function unixSet [src]

Sets the permissions for the chosen class. Any permissions set to null are left unchanged. This method DOES NOT set permissions on the filesystem: use File.setPermissions(permissions)

Prototype

pub fn unixSet(self: *Self, class: Class, permissions: struct { read: ?bool = null, write: ?bool = null, execute: ?bool = null, }) void

Parameters

self: *Selfclass: Classpermissions: struct { read: ?bool = null, write: ?bool = null, execute: ?bool = null, }

Source

pub fn unixSet(self: *Self, class: Class, permissions: struct { read: ?bool = null, write: ?bool = null, execute: ?bool = null, }) void { const shift = @as(u3, @intFromEnum(class)) * 3; if (permissions.read) |r| { if (r) { self.mode |= @as(Mode, 0o4) << shift; } else { self.mode &= ~(@as(Mode, 0o4) << shift); } } if (permissions.write) |w| { if (w) { self.mode |= @as(Mode, 0o2) << shift; } else { self.mode &= ~(@as(Mode, 0o2) << shift); } } if (permissions.execute) |x| { if (x) { self.mode |= @as(Mode, 0o1) << shift; } else { self.mode &= ~(@as(Mode, 0o1) << shift); } } }