diff --git a/Package.swift b/Package.swift index 39e7fc6..603a2aa 100644 --- a/Package.swift +++ b/Package.swift @@ -22,8 +22,8 @@ let package = Package( ), ], dependencies: [ - .package(url: "https://github.com/hummingbird-project/hummingbird.git", from: "2.0.0-rc.1"), - .package(url: "https://github.com/sliemeobn/elementary.git", .upToNextMajor(from: "0.1.2")), + .package(url: "https://github.com/hummingbird-project/hummingbird.git", from: "2.0.0-rc.5"), + .package(url: "https://github.com/sliemeobn/elementary.git", .upToNextMajor(from: "0.2.0")), ], targets: [ .target( diff --git a/Sources/HummingbirdElementary/HTMLResponse.swift b/Sources/HummingbirdElementary/HTMLResponse.swift index 6313a72..1c7efa3 100644 --- a/Sources/HummingbirdElementary/HTMLResponse.swift +++ b/Sources/HummingbirdElementary/HTMLResponse.swift @@ -39,9 +39,9 @@ public struct HTMLResponse: Sendable { extension HTMLResponse: ResponseGenerator { struct StreamWriter: HTMLStreamWriter { let allocator: ByteBufferAllocator - let writer: any ResponseBodyWriter + var writer: any ResponseBodyWriter - func write(_ bytes: ArraySlice) async throws { + mutating func write(_ bytes: ArraySlice) async throws { try await self.writer.write(self.allocator.buffer(bytes: bytes)) } } @@ -51,7 +51,8 @@ extension HTMLResponse: ResponseGenerator { status: .ok, headers: [.contentType: "text/html; charset=utf-8"], body: .init { [self] writer in - try await self.content.render(into: StreamWriter(allocator: context.allocator, writer: writer), chunkSize: self.chunkSize) + try await self.content.render(into: StreamWriter(allocator: ByteBufferAllocator(), writer: writer), chunkSize: self.chunkSize) + try await writer.finish(nil) } ) }