Use C integer types

Instead of using hardcoded fixed width integers, use C integer types.
As the actual integer size of C depends on the implementation, even if
it is often 32bit, we use the C integer types to guard against cases,
where that is not the case.
This commit is contained in:
T. R. Bernstein
2026-03-12 00:32:14 +01:00
parent e44e1fc9b8
commit d57f998fd4
2 changed files with 26 additions and 26 deletions

View File

@@ -2,8 +2,8 @@ import Dispatch
import CInotify
public actor Inotify {
private let fd: Int32
private var watches: [Int32: String] = [:]
private let fd: CInt
private var watches: [CInt: String] = [:]
private var eventReader: any DispatchSourceRead
private var eventStream: AsyncStream<RawInotifyEvent>
public var events: AsyncCompactMapSequence<AsyncStream<RawInotifyEvent>, InotifyEvent> {
@@ -11,7 +11,7 @@ public actor Inotify {
}
public init() throws {
self.fd = inotify_init1(Int32(IN_NONBLOCK | IN_CLOEXEC))
self.fd = inotify_init1(CInt(IN_NONBLOCK | IN_CLOEXEC))
guard self.fd >= 0 else {
throw InotifyError.initFailed(errno: cinotify_get_errno())
}
@@ -19,7 +19,7 @@ public actor Inotify {
}
@discardableResult
public func addWatch(path: String, mask: InotifyEventMask) throws -> Int32 {
public func addWatch(path: String, mask: InotifyEventMask) throws -> CInt {
let wd = inotify_add_watch(self.fd, path, mask.rawValue)
guard wd >= 0 else {
throw InotifyError.addWatchFailed(path: path, errno: cinotify_get_errno())
@@ -28,7 +28,7 @@ public actor Inotify {
return wd
}
public func removeWatch(_ wd: Int32) throws {
public func removeWatch(_ wd: CInt) throws {
guard inotify_rm_watch(self.fd, wd) == 0 else {
throw InotifyError.removeWatchFailed(watchDescriptor: wd, errno: cinotify_get_errno())
}
@@ -44,7 +44,7 @@ public actor Inotify {
return InotifyEvent.init(from: rawEvent, inDirectory: path)
}
private static func createEventReader(forFileDescriptor fd: Int32) -> (any DispatchSourceRead, AsyncStream<RawInotifyEvent>) {
private static func createEventReader(forFileDescriptor fd: CInt) -> (any DispatchSourceRead, AsyncStream<RawInotifyEvent>) {
let (stream, continuation) = AsyncStream<RawInotifyEvent>.makeStream(
of: RawInotifyEvent.self,
bufferingPolicy: .bufferingNewest(512)

View File

@@ -1,7 +1,7 @@
import CInotify
public struct InotifyEventMask: OptionSet, Sendable, Hashable {
public let rawValue: UInt32
public let rawValue: CUnsignedInt
public init(rawValue: UInt32) {
self.rawValue = rawValue
@@ -9,18 +9,18 @@ public struct InotifyEventMask: OptionSet, Sendable, Hashable {
// MARK: - Watchable Events
public static let access = InotifyEventMask(rawValue: UInt32(IN_ACCESS))
public static let attrib = InotifyEventMask(rawValue: UInt32(IN_ATTRIB))
public static let closeWrite = InotifyEventMask(rawValue: UInt32(IN_CLOSE_WRITE))
public static let closeNoWrite = InotifyEventMask(rawValue: UInt32(IN_CLOSE_NOWRITE))
public static let create = InotifyEventMask(rawValue: UInt32(IN_CREATE))
public static let delete = InotifyEventMask(rawValue: UInt32(IN_DELETE))
public static let deleteSelf = InotifyEventMask(rawValue: UInt32(IN_DELETE_SELF))
public static let modify = InotifyEventMask(rawValue: UInt32(IN_MODIFY))
public static let moveSelf = InotifyEventMask(rawValue: UInt32(IN_MOVE_SELF))
public static let movedFrom = InotifyEventMask(rawValue: UInt32(IN_MOVED_FROM))
public static let movedTo = InotifyEventMask(rawValue: UInt32(IN_MOVED_TO))
public static let open = InotifyEventMask(rawValue: UInt32(IN_OPEN))
public static let access = InotifyEventMask(rawValue: CUnsignedInt(IN_ACCESS))
public static let attrib = InotifyEventMask(rawValue: CUnsignedInt(IN_ATTRIB))
public static let closeWrite = InotifyEventMask(rawValue: CUnsignedInt(IN_CLOSE_WRITE))
public static let closeNoWrite = InotifyEventMask(rawValue: CUnsignedInt(IN_CLOSE_NOWRITE))
public static let create = InotifyEventMask(rawValue: CUnsignedInt(IN_CREATE))
public static let delete = InotifyEventMask(rawValue: CUnsignedInt(IN_DELETE))
public static let deleteSelf = InotifyEventMask(rawValue: CUnsignedInt(IN_DELETE_SELF))
public static let modify = InotifyEventMask(rawValue: CUnsignedInt(IN_MODIFY))
public static let moveSelf = InotifyEventMask(rawValue: CUnsignedInt(IN_MOVE_SELF))
public static let movedFrom = InotifyEventMask(rawValue: CUnsignedInt(IN_MOVED_FROM))
public static let movedTo = InotifyEventMask(rawValue: CUnsignedInt(IN_MOVED_TO))
public static let open = InotifyEventMask(rawValue: CUnsignedInt(IN_OPEN))
// MARK: - Combinations
@@ -34,14 +34,14 @@ public struct InotifyEventMask: OptionSet, Sendable, Hashable {
// MARK: - Watch Flags
public static let dontFollow = InotifyEventMask(rawValue: UInt32(IN_DONT_FOLLOW))
public static let onlyDir = InotifyEventMask(rawValue: UInt32(IN_ONLYDIR))
public static let oneShot = InotifyEventMask(rawValue: UInt32(IN_ONESHOT))
public static let dontFollow = InotifyEventMask(rawValue: CUnsignedInt(IN_DONT_FOLLOW))
public static let onlyDir = InotifyEventMask(rawValue: CUnsignedInt(IN_ONLYDIR))
public static let oneShot = InotifyEventMask(rawValue: CUnsignedInt(IN_ONESHOT))
// MARK: - Kernel-Only Flags
public static let isDir = InotifyEventMask(rawValue: UInt32(IN_ISDIR))
public static let ignored = InotifyEventMask(rawValue: UInt32(IN_IGNORED))
public static let queueOverflow = InotifyEventMask(rawValue: UInt32(IN_Q_OVERFLOW))
public static let unmount = InotifyEventMask(rawValue: UInt32(IN_UNMOUNT))
public static let isDir = InotifyEventMask(rawValue: CUnsignedInt(IN_ISDIR))
public static let ignored = InotifyEventMask(rawValue: CUnsignedInt(IN_IGNORED))
public static let queueOverflow = InotifyEventMask(rawValue: CUnsignedInt(IN_Q_OVERFLOW))
public static let unmount = InotifyEventMask(rawValue: CUnsignedInt(IN_UNMOUNT))
}