Import System package when available (#34)

* Import System package when available

* Add isResourceTemporarilyUnavailable helper method to reduce number of imports of System / SystemPackage
This commit is contained in:
Mattt 2025-03-31 05:30:45 -07:00 • committed by GitHub
commit d55140bc46
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,5 +1,11 @@
import Foundation
#if canImport(System)
import System
#else
@preconcurrency import SystemPackage
#endif
/// A model context protocol error.
public enum Error: Sendable {
// Standard JSON-RPC 2.0 errors (-32700 to -32603)
@ -29,6 +35,20 @@ public enum Error: Sendable {
case .transportError: return -32001
}
}
/// Check if an error represents a "resource temporarily unavailable" condition
public static func isResourceTemporarilyUnavailable(_ error: Swift.Error) -> Bool {
#if canImport(System)
if let errno = error as? System.Errno, errno == .resourceTemporarilyUnavailable {
return true
}
#else
if let errno = error as? SystemPackage.Errno, errno == .resourceTemporarilyUnavailable {
return true
}
#endif
return false
}
}
// MARK: LocalizedError