From 52c760e0f277e1ed12fe0ec07987969650f46652 Mon Sep 17 00:00:00 2001 From: "Lvv.me" Date: Thu, 20 Jan 2022 02:00:11 +0800 Subject: [PATCH] Update to Swift 5 --- Package.swift | 13 ++++++++----- Sources/PerfectHTTP/HTTPRequest.swift | 2 +- Sources/PerfectHTTP/HTTPResponse.swift | 2 +- Sources/PerfectHTTP/MimeReader.swift | 2 +- Tests/PerfectHTTPTests/PerfectHTTPTests.swift | 6 +++--- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Package.swift b/Package.swift index 54e8114..25c98ec 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version:4.1 +// swift-tools-version:5.1 // // Package.swift // PerfectHTTP @@ -27,8 +27,8 @@ let package = Package( .library(name: "PerfectHTTP", targets: ["PerfectHTTP"]) ], dependencies: [ - .package(url: "https://github.com/PerfectlySoft/PerfectLib.git", from: "3.0.0"), - .package(url: "https://github.com/PerfectlySoft/Perfect-Net.git", from: "3.0.0"), + .package(url: "https://github.com/PerfectlySoft/PerfectLib.git", from: "4.0.0"), + .package(url: "https://github.com/PerfectlySoft/Perfect-Net.git", from: "4.0.0"), .package(url: "https://github.com/PerfectlySoft/Perfect-LinuxBridge.git", from: "3.0.0") ], targets: [ @@ -39,12 +39,15 @@ let package = Package( #else let package = Package( name: "PerfectHTTP", + platforms: [ + .macOS(.v10_15) + ], products: [ .library(name: "PerfectHTTP", targets: ["PerfectHTTP"]) ], dependencies: [ - .package(url: "https://github.com/PerfectlySoft/PerfectLib.git", from: "3.0.0"), - .package(url: "https://github.com/PerfectlySoft/Perfect-Net.git", from: "3.0.0") + .package(url: "https://github.com/PerfectlySoft/PerfectLib.git", from: "4.0.0"), + .package(url: "https://github.com/PerfectlySoft/Perfect-Net.git", from: "4.0.0") ], targets: [ .target(name: "PerfectHTTP", dependencies: ["PerfectLib", "PerfectNet"]), .testTarget(name: "PerfectHTTPTests", dependencies: ["PerfectHTTP", "PerfectNet"]) diff --git a/Sources/PerfectHTTP/HTTPRequest.swift b/Sources/PerfectHTTP/HTTPRequest.swift index 0fb649a..bc0bc4f 100644 --- a/Sources/PerfectHTTP/HTTPRequest.swift +++ b/Sources/PerfectHTTP/HTTPRequest.swift @@ -22,7 +22,7 @@ import PerfectNet /// An HTTP based request object. /// Contains all HTTP header and content data submitted by the client. -public protocol HTTPRequest: class { +public protocol HTTPRequest: AnyObject { /// The HTTP request method. var method: HTTPMethod { get set } /// The request path. diff --git a/Sources/PerfectHTTP/HTTPResponse.swift b/Sources/PerfectHTTP/HTTPResponse.swift index bd9cef1..5d5321c 100644 --- a/Sources/PerfectHTTP/HTTPResponse.swift +++ b/Sources/PerfectHTTP/HTTPResponse.swift @@ -273,7 +273,7 @@ public struct HTTPCookie { /// An HTTP based response object. /// Contains all header and body data which will be delivered to the client. -public protocol HTTPResponse: class { +public protocol HTTPResponse: AnyObject { /// The request object which instigated this response. var request: HTTPRequest { get } /// The HTTP response status. diff --git a/Sources/PerfectHTTP/MimeReader.swift b/Sources/PerfectHTTP/MimeReader.swift index 78a8cad..8136e57 100644 --- a/Sources/PerfectHTTP/MimeReader.swift +++ b/Sources/PerfectHTTP/MimeReader.swift @@ -359,7 +359,7 @@ public final class MimeReader { } // write as much data as we reasonably can var writeEnd = position - let qPtr = UnsafePointer(byts) + let qPtr = byts.withUnsafeBufferPointer { $0.baseAddress! } while writeEnd < end { if qPtr[writeEnd] == mime_cr { diff --git a/Tests/PerfectHTTPTests/PerfectHTTPTests.swift b/Tests/PerfectHTTPTests/PerfectHTTPTests.swift index ea70db4..40f388d 100644 --- a/Tests/PerfectHTTPTests/PerfectHTTPTests.swift +++ b/Tests/PerfectHTTPTests/PerfectHTTPTests.swift @@ -601,7 +601,7 @@ class PerfectHTTPTests: XCTestCase { response.handlers = handlers response.next() XCTAssertEqual(response.header(.contentType), "application/json") - let decodeCheck = try? JSONDecoder().decode(RequestResponse.self, from: Data(bytes: response.bodyBytes)) + let decodeCheck = try? JSONDecoder().decode(RequestResponse.self, from: Data(response.bodyBytes)) XCTAssertNotNil(decodeCheck) } do { @@ -627,7 +627,7 @@ class PerfectHTTPTests: XCTestCase { response.handlers = handlers response.next() XCTAssertEqual(response.header(.contentType), "foo/bar") - let decodeCheck = try? JSONDecoder().decode(RequestResponse.self, from: Data(bytes: response.bodyBytes)) + let decodeCheck = try? JSONDecoder().decode(RequestResponse.self, from: Data(response.bodyBytes)) XCTAssertNotNil(decodeCheck) } do { @@ -686,7 +686,7 @@ class PerfectHTTPTests: XCTestCase { self.waitForExpectations(timeout: 10) { _ in } XCTAssertEqual(response.header(.contentType), "application/json") - let decodeCheck = try? JSONDecoder().decode(Body.self, from: Data(bytes: response.bodyBytes)) + let decodeCheck = try? JSONDecoder().decode(Body.self, from: Data(response.bodyBytes)) XCTAssertNotNil(decodeCheck) }