diff --git a/Package.swift b/Package.swift index 6602945..fc79308 100644 --- a/Package.swift +++ b/Package.swift @@ -10,7 +10,7 @@ let package = Package( .library(name: "HummingbirdCompression", targets: ["HummingbirdCompression"]) ], dependencies: [ - .package(url: "https://github.com/hummingbird-project/hummingbird.git", from: "2.0.0"), + .package(url: "https://github.com/hummingbird-project/hummingbird.git", branch: "non-mutating-response-body-writer"), .package(url: "https://github.com/adam-fowler/compress-nio.git", from: "1.4.0"), .package(url: "https://github.com/apple/swift-nio.git", from: "2.32.1"), ], diff --git a/Sources/HummingbirdCompression/CompressedBodyWriter.swift b/Sources/HummingbirdCompression/CompressedBodyWriter.swift index 9548967..fdfd3d2 100644 --- a/Sources/HummingbirdCompression/CompressedBodyWriter.swift +++ b/Sources/HummingbirdCompression/CompressedBodyWriter.swift @@ -18,7 +18,7 @@ import Logging // ResponseBodyWriter that writes a compressed version of the response to a parent writer final class CompressedBodyWriter: ResponseBodyWriter { - var parentWriter: ParentWriter + let parentWriter: ParentWriter private let compressor: ZlibCompressor private var window: ByteBuffer var lastBuffer: ByteBuffer? diff --git a/Tests/HummingbirdCompressionTests/CompressionTests.swift b/Tests/HummingbirdCompressionTests/CompressionTests.swift index d22ceb1..e31d6d0 100644 --- a/Tests/HummingbirdCompressionTests/CompressionTests.swift +++ b/Tests/HummingbirdCompressionTests/CompressionTests.swift @@ -140,11 +140,16 @@ class HummingBirdCompressionTests: XCTestCase { struct VerifyResponseBodyChunkSize: RouterMiddleware { let bufferSize: Int - struct Writer: ResponseBodyWriter { - var parentWriter: any ResponseBodyWriter + final class Writer: ResponseBodyWriter { + let parentWriter: any ResponseBodyWriter let bufferSize: Int - mutating func write(_ buffer: ByteBuffer) async throws { + init(parentWriter: any ResponseBodyWriter, bufferSize: Int) { + self.parentWriter = parentWriter + self.bufferSize = bufferSize + } + + func write(_ buffer: ByteBuffer) async throws { XCTAssertLessThanOrEqual(buffer.capacity, self.bufferSize) try await self.parentWriter.write(buffer) }