Skip to content

Commit d027b3b

Browse files
Added support for Swift 6
1 parent db3e026 commit d027b3b

File tree

6 files changed

+65
-27
lines changed

6 files changed

+65
-27
lines changed

[email protected]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ let package = Package(
2828
name: "AsyncSequenceReader",
2929
dependencies: [],
3030
swiftSettings: [
31-
.enableExperimentalFeature("StrictConcurrency")
31+
.enableExperimentalFeature("StrictConcurrency"),
3232
]
3333
),
3434
.testTarget(

[email protected]

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// swift-tools-version:6.0
2+
// The swift-tools-version declares the minimum version of Swift required to build this package.
3+
4+
import PackageDescription
5+
6+
let package = Package(
7+
name: "AsyncSequenceReader",
8+
platforms: [
9+
.macOS(.v10_15),
10+
.iOS(.v13),
11+
.tvOS(.v13),
12+
.watchOS(.v6),
13+
],
14+
products: [
15+
// Products define the executables and libraries a package produces, and make them visible to other packages.
16+
.library(
17+
name: "AsyncSequenceReader",
18+
targets: ["AsyncSequenceReader"]),
19+
],
20+
dependencies: [
21+
// Dependencies declare other packages that this package depends on.
22+
// .package(url: /* package url */, from: "1.0.0"),
23+
],
24+
targets: [
25+
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
26+
// Targets can depend on other targets in this package, and on products in packages this package depends on.
27+
.target(
28+
name: "AsyncSequenceReader",
29+
dependencies: [],
30+
swiftSettings: [
31+
.swiftLanguageVersion(.v6),
32+
]
33+
),
34+
.testTarget(
35+
name: "AsyncSequenceReaderTests",
36+
dependencies: ["AsyncSequenceReader"]),
37+
]
38+
)

Sources/AsyncSequenceReader/AsyncReadSequence.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ extension AsyncIteratorProtocol {
2929
public mutating func transform<Transformed, ReadSequence: AsyncReadSequence>(
3030
with sequenceTransform: (ReadSequence) async throws -> Transformed,
3131
readSequenceFactory: (inout AsyncBufferedIterator<Self>) -> ReadSequence
32-
) async rethrows -> Transformed? where ReadSequence.BaseIterator == Self {
32+
) async throws -> Transformed? where ReadSequence.BaseIterator == Self {
3333
var results: Transformed? = nil
3434
var wrappedIterator = AsyncBufferedIterator(self)
3535
if try await wrappedIterator.hasMoreData() {
@@ -54,7 +54,7 @@ extension AsyncBufferedIterator {
5454
public mutating func transform<Transformed, ReadSequence: AsyncReadSequence>(
5555
with sequenceTransform: (ReadSequence) async throws -> Transformed,
5656
readSequenceFactory: (inout Self) -> ReadSequence
57-
) async rethrows -> Transformed? where ReadSequence.BaseIterator == BaseIterator {
57+
) async throws -> Transformed? where ReadSequence.BaseIterator == BaseIterator {
5858

5959
var results: Transformed? = nil
6060
if try await self.hasMoreData() {

Sources/AsyncSequenceReader/AsyncReadUpToCountSequence.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ extension AsyncIteratorProtocol {
8282
public mutating func collect<Transformed>(
8383
_ count: Int,
8484
sequenceTransform: (AsyncReadUpToCountSequence<Self>) async throws -> Transformed
85-
) async rethrows -> Transformed? {
85+
) async throws -> Transformed? {
8686
assert(count >= 0, "count must be larger than 0")
8787
return try await collect(min: count, max: count, sequenceTransform: sequenceTransform)
8888
}
@@ -121,7 +121,7 @@ extension AsyncIteratorProtocol {
121121
min minCount: Int = 0,
122122
max maxCount: Int,
123123
sequenceTransform: (AsyncReadUpToCountSequence<Self>) async throws -> Transformed
124-
) async rethrows -> Transformed? {
124+
) async throws -> Transformed? {
125125
try await transform(with: sequenceTransform) { .init($0, minCount: minCount, maxCount: maxCount) }
126126
}
127127
}
@@ -159,7 +159,7 @@ extension AsyncBufferedIterator {
159159
public mutating func collect<Transformed>(
160160
_ count: Int,
161161
sequenceTransform: (AsyncReadUpToCountSequence<BaseIterator>) async throws -> Transformed
162-
) async rethrows -> Transformed? {
162+
) async throws -> Transformed? {
163163
assert(count >= 0, "count must be larger than 0")
164164
return try await collect(min: count, max: count, sequenceTransform: sequenceTransform)
165165
}
@@ -198,7 +198,7 @@ extension AsyncBufferedIterator {
198198
min minCount: Int = 0,
199199
max maxCount: Int,
200200
sequenceTransform: (AsyncReadUpToCountSequence<BaseIterator>) async throws -> Transformed
201-
) async rethrows -> Transformed? {
201+
) async throws -> Transformed? {
202202
try await transform(with: sequenceTransform) { .init($0, minCount: minCount, maxCount: maxCount) }
203203
}
204204
}

Sources/AsyncSequenceReader/AsyncReadUpToElementsSequence.swift

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,8 @@ extension AsyncIteratorProtocol {
184184
public mutating func collect<Transformed>(
185185
upToIncluding termination: Element,
186186
sequenceTransform: (AsyncReadUpToElementsSequence<Self>) async -> Transformed
187-
) async -> Transformed? where Element: Equatable {
188-
await collect(upToIncluding: [termination], sequenceTransform: sequenceTransform)
187+
) async throws -> Transformed? where Element: Equatable {
188+
try await collect(upToIncluding: [termination], sequenceTransform: sequenceTransform)
189189
}
190190

191191
/// Collect elements into a sequence until the termination sequence is encountered, and transform it using the provided closure.
@@ -221,8 +221,8 @@ extension AsyncIteratorProtocol {
221221
public mutating func collect<Transformed>(
222222
upToIncluding termination: [Element],
223223
sequenceTransform: (AsyncReadUpToElementsSequence<Self>) async -> Transformed
224-
) async -> Transformed? where Element: Equatable {
225-
await transform(with: sequenceTransform) { .init($0, termination: termination) }
224+
) async throws -> Transformed? where Element: Equatable {
225+
try await transform(with: sequenceTransform) { .init($0, termination: termination) }
226226
}
227227

228228
/// Collect elements into a sequence until the termination sequence is encountered, and transform it using the provided closure.
@@ -258,7 +258,7 @@ extension AsyncIteratorProtocol {
258258
public mutating func collect<Transformed>(
259259
upToIncluding termination: Element,
260260
sequenceTransform: (AsyncReadUpToElementsSequence<Self>) async throws -> Transformed
261-
) async rethrows -> Transformed? where Element: Equatable {
261+
) async throws -> Transformed? where Element: Equatable {
262262
try await collect(upToIncluding: [termination], sequenceTransform: sequenceTransform)
263263
}
264264

@@ -295,7 +295,7 @@ extension AsyncIteratorProtocol {
295295
public mutating func collect<Transformed>(
296296
upToIncluding termination: [Element],
297297
sequenceTransform: (AsyncReadUpToElementsSequence<Self>) async throws -> Transformed
298-
) async rethrows -> Transformed? where Element: Equatable {
298+
) async throws -> Transformed? where Element: Equatable {
299299
try await transform(with: sequenceTransform) { .init($0, termination: termination) }
300300
}
301301
}
@@ -335,8 +335,8 @@ extension AsyncBufferedIterator {
335335
public mutating func collect<Transformed>(
336336
upToIncluding termination: Element,
337337
sequenceTransform: (AsyncReadUpToElementsSequence<Self>) async -> Transformed
338-
) async -> Transformed? where Element: Equatable {
339-
await collect(upToIncluding: [termination], sequenceTransform: sequenceTransform)
338+
) async throws -> Transformed? where Element: Equatable {
339+
try await collect(upToIncluding: [termination], sequenceTransform: sequenceTransform)
340340
}
341341

342342
/// Collect elements into a sequence until the termination sequence is encountered, and transform it using the provided closure.
@@ -372,8 +372,8 @@ extension AsyncBufferedIterator {
372372
public mutating func collect<Transformed>(
373373
upToIncluding termination: [Element],
374374
sequenceTransform: (AsyncReadUpToElementsSequence<BaseIterator>) async -> Transformed
375-
) async -> Transformed? where Element: Equatable {
376-
await transform(with: sequenceTransform) { .init($0, termination: termination) }
375+
) async throws -> Transformed? where Element: Equatable {
376+
try await transform(with: sequenceTransform) { .init($0, termination: termination) }
377377
}
378378

379379
/// Collect elements into a sequence until the termination sequence is encountered, and transform it using the provided closure.
@@ -409,7 +409,7 @@ extension AsyncBufferedIterator {
409409
public mutating func collect<Transformed>(
410410
upToIncluding termination: Element,
411411
sequenceTransform: (AsyncReadUpToElementsSequence<Self>) async throws -> Transformed
412-
) async rethrows -> Transformed? where Element: Equatable {
412+
) async throws -> Transformed? where Element: Equatable {
413413
try await collect(upToIncluding: [termination], sequenceTransform: sequenceTransform)
414414
}
415415

@@ -446,7 +446,7 @@ extension AsyncBufferedIterator {
446446
public mutating func collect<Transformed>(
447447
upToIncluding termination: [Element],
448448
sequenceTransform: (AsyncReadUpToElementsSequence<BaseIterator>) async throws -> Transformed
449-
) async rethrows -> Transformed? where Element: Equatable {
449+
) async throws -> Transformed? where Element: Equatable {
450450
try await transform(with: sequenceTransform) { .init($0, termination: termination) }
451451
}
452452
}

Tests/AsyncSequenceReaderTests/AsyncReadUpToElementsSequenceTests.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ final class AsyncReadUpToElementsSequenceTests: XCTestCase {
1616
let testStream = TestSequence(base: "apple orange banana kiwi kumquat pear pineapple")
1717

1818
let results = testStream.iteratorMap { iterator -> String? in
19-
let word = await iterator.collect(upToIncluding: " ") { sequence -> String in
19+
let word = try await iterator.collect(upToIncluding: " ") { sequence -> String in
2020
await sequence.reduce(into: "") { $0.append($1) }
2121
}
2222

@@ -28,13 +28,13 @@ final class AsyncReadUpToElementsSequenceTests: XCTestCase {
2828

2929
var resultsIterator = results.makeAsyncIterator()
3030

31-
await AsyncXCTAssertEqual(await resultsIterator.next(), "apple")
32-
await AsyncXCTAssertEqual(await resultsIterator.next(), "orange")
33-
await AsyncXCTAssertEqual(await resultsIterator.next(), "banana")
34-
await AsyncXCTAssertEqual(await resultsIterator.next(), "kiwi")
35-
await AsyncXCTAssertEqual(await resultsIterator.next(), "kumquat")
36-
await AsyncXCTAssertEqual(await resultsIterator.next(), "pear")
37-
await AsyncXCTAssertEqual(await resultsIterator.next(), "pineapple")
31+
try await AsyncXCTAssertEqual(await resultsIterator.next(), "apple")
32+
try await AsyncXCTAssertEqual(await resultsIterator.next(), "orange")
33+
try await AsyncXCTAssertEqual(await resultsIterator.next(), "banana")
34+
try await AsyncXCTAssertEqual(await resultsIterator.next(), "kiwi")
35+
try await AsyncXCTAssertEqual(await resultsIterator.next(), "kumquat")
36+
try await AsyncXCTAssertEqual(await resultsIterator.next(), "pear")
37+
try await AsyncXCTAssertEqual(await resultsIterator.next(), "pineapple")
3838
}
3939

4040
func testIteratorMapUpToIncluding() async throws {

0 commit comments

Comments
 (0)