Skip to content

Commit ea76b4d

Browse files
committed
rm legacy Swift
1 parent cbb1974 commit ea76b4d

11 files changed

+7
-533
lines changed

.github/workflows/swift_macos.yml

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,23 @@ on:
55
branches:
66
- "main"
77
- $default-branch
8+
- "rm_legacy"
89
paths:
910
- ".github/workflows/**"
1011
- "Package.swift"
1112
- "Source/**"
13+
- "Sources/**"
1214
- "Tests/**"
1315
pull_request:
16+
branches:
17+
- "main"
18+
- $default-branch
19+
- "rm_legacy"
1420
paths:
1521
- ".github/workflows/**"
1622
- "Package.swift"
1723
- "Source/**"
24+
- "Sources/**"
1825
- "Tests/**"
1926

2027
concurrency:
@@ -39,14 +46,6 @@ jobs:
3946
runsOn: macOS-15
4047
swift: "6.0"
4148
outputFilter: xcbeautify --renderer github-actions
42-
- xcode: "Xcode_15.4"
43-
runsOn: macOS-14
44-
swift: "5.10"
45-
outputFilter: xcbeautify --renderer github-actions
46-
- xcode: "Xcode_15.2"
47-
runsOn: macOS-14
48-
swift: "5.9"
49-
outputFilter: xcbeautify --renderer github-actions
5049
steps:
5150
- uses: swift-actions/setup-swift@v2
5251
with:

Source/DefferedTask+Async.swift

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import Foundation
22

3-
#if swift(>=6.0)
43
public extension DefferedTask {
54
func onComplete() async -> ResultType
65
where ResultType: Sendable {
@@ -20,23 +19,3 @@ public extension DefferedTask {
2019
}
2120
}
2221
}
23-
#else
24-
public extension DefferedTask {
25-
func onComplete() async -> ResultType {
26-
return await withCheckedContinuation { actual in
27-
onComplete {
28-
actual.resume(returning: $0)
29-
}
30-
}
31-
}
32-
33-
func onComplete<Response, Error: Swift.Error>() async throws -> Response
34-
where ResultType == Result<Response, Error> {
35-
return try await withCheckedThrowingContinuation { actual in
36-
onComplete {
37-
actual.resume(with: $0)
38-
}
39-
}
40-
}
41-
}
42-
#endif

Source/DefferedTask+Result.swift

Lines changed: 0 additions & 254 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import Foundation
22

3-
#if swift(>=6.0)
43
public extension DefferedTask {
54
func on<Response, Error: Swift.Error>(success: @escaping @Sendable (_ result: Response) -> Void,
65
fail: @escaping @Sendable (_ error: Error) -> Void)
@@ -252,256 +251,3 @@ public extension DefferedTask {
252251
}
253252
}
254253
}
255-
#else
256-
public extension DefferedTask {
257-
func on<Response, Error: Swift.Error>(success: @escaping (_ result: Response) -> Void,
258-
fail: @escaping (_ error: Error) -> Void)
259-
where ResultType == Result<Response, Error> {
260-
onComplete { result in
261-
switch result {
262-
case .success(let response):
263-
success(response)
264-
case .failure(let error):
265-
fail(error)
266-
}
267-
}
268-
}
269-
270-
// MARK: - convenience init
271-
272-
convenience init<Response, Error>(success result: @escaping () -> Response)
273-
where ResultType == Result<Response, Error> {
274-
self.init(execute: {
275-
let result = result()
276-
$0(.success(result))
277-
})
278-
}
279-
280-
convenience init<Response, Error>(failure result: @escaping () -> Error)
281-
where ResultType == Result<Response, Error> {
282-
self.init(execute: {
283-
let result = result()
284-
$0(.failure(result))
285-
})
286-
}
287-
288-
convenience init<Response, Error>(success result: @escaping @autoclosure () -> Response)
289-
where ResultType == Result<Response, Error> {
290-
self.init(execute: {
291-
let result = result()
292-
$0(.success(result))
293-
})
294-
}
295-
296-
convenience init<Response, Error>(failure result: @escaping @autoclosure () -> Error)
297-
where ResultType == Result<Response, Error> {
298-
self.init(execute: {
299-
let result = result()
300-
$0(.failure(result))
301-
})
302-
}
303-
304-
static func success<Response, Error>(_ result: @escaping @autoclosure () -> Response) -> DefferedResult<Response, Error>
305-
where ResultType == Result<Response, Error> {
306-
return .init {
307-
return .success(result())
308-
}
309-
}
310-
311-
static func failure<Response, Error>(_ result: @escaping @autoclosure () -> Error) -> DefferedResult<Response, Error>
312-
where ResultType == Result<Response, Error> {
313-
return .init {
314-
return .failure(result())
315-
}
316-
}
317-
318-
// MARK: - map
319-
320-
func map<NewResponse, Response, Error: Swift.Error>(_ mapper: @escaping (_ value: Response) -> NewResponse) -> DefferedResult<NewResponse, Error>
321-
where ResultType == Result<Response, Error> {
322-
return flatMap {
323-
return $0.map(mapper)
324-
}
325-
}
326-
327-
func mapError<Response, Error: Swift.Error, NewError: Swift.Error>(_ mapper: @escaping (_ error: Error) -> NewError) -> DefferedResult<Response, NewError>
328-
where ResultType == Result<Response, Error> {
329-
return flatMap {
330-
return $0.mapError(mapper)
331-
}
332-
}
333-
334-
func compactMap<NewResponse, Response, Error: Swift.Error>(_ mapper: @escaping (_ value: Response) -> NewResponse?) -> DefferedResult<[NewResponse], Error>
335-
where ResultType == Result<[Response], Error> {
336-
return flatMap {
337-
return $0.map {
338-
return $0.compactMap(mapper)
339-
}
340-
}
341-
}
342-
343-
func tryMap<NewResponse, Response, Error: Swift.Error>(_ mapper: @escaping (_ value: Response) throws -> NewResponse) -> DefferedResult<NewResponse, Swift.Error>
344-
where ResultType == Result<Response, Error> {
345-
return flatMap {
346-
do {
347-
switch $0 {
348-
case .success(let response):
349-
return try .success(mapper(response))
350-
case .failure(let error):
351-
return .failure(error)
352-
}
353-
} catch {
354-
return .failure(error)
355-
}
356-
}
357-
}
358-
359-
// MARK: - before
360-
361-
@discardableResult
362-
func beforeSuccess<Response, Error: Swift.Error>(_ success: @escaping (_ value: Response) -> Void) -> Self
363-
where ResultType == Result<Response, Error> {
364-
return beforeComplete { result in
365-
switch result {
366-
case .success(let response):
367-
success(response)
368-
case .failure:
369-
break
370-
}
371-
}
372-
}
373-
374-
@discardableResult
375-
func beforeFail<Response, Error: Swift.Error>(_ fail: @escaping (_ error: Error) -> Void) -> Self
376-
where ResultType == Result<Response, Error> {
377-
return beforeComplete { result in
378-
switch result {
379-
case .success:
380-
break
381-
case .failure(let error):
382-
fail(error)
383-
}
384-
}
385-
}
386-
387-
// MARK: - defer
388-
389-
@discardableResult
390-
func afterSuccess<Response, Error: Swift.Error>(_ success: @escaping (_ value: Response) -> Void) -> Self
391-
where ResultType == Result<Response, Error> {
392-
return afterComplete { result in
393-
switch result {
394-
case .success(let response):
395-
success(response)
396-
case .failure:
397-
break
398-
}
399-
}
400-
}
401-
402-
@discardableResult
403-
func afterFail<Response, Error: Swift.Error>(_ fail: @escaping (_ error: Error) -> Void) -> Self
404-
where ResultType == Result<Response, Error> {
405-
return afterComplete { result in
406-
switch result {
407-
case .success:
408-
break
409-
case .failure(let error):
410-
fail(error)
411-
}
412-
}
413-
}
414-
415-
// MARK: - recover
416-
417-
func recover<Response, Error: Swift.Error>(_ mapper: @escaping (_ error: Error) -> Response) -> DefferedTask<Response>
418-
where ResultType == Result<Response, Error> {
419-
return flatMap {
420-
switch $0 {
421-
case .success(let v):
422-
return v
423-
case .failure(let e):
424-
return mapper(e)
425-
}
426-
}
427-
}
428-
429-
func recover<Response, Error: Swift.Error>(_ recovered: @escaping () -> Response) -> DefferedTask<Response>
430-
where ResultType == Result<Response, Error> {
431-
return flatMap {
432-
switch $0 {
433-
case .success(let v):
434-
return v
435-
case .failure:
436-
return recovered()
437-
}
438-
}
439-
}
440-
441-
func recover<Response, Error: Swift.Error>(with recovered: @escaping @autoclosure () -> Response) -> DefferedTask<Response>
442-
where ResultType == Result<Response, Error> {
443-
return flatMap {
444-
switch $0 {
445-
case .success(let v):
446-
return v
447-
case .failure:
448-
return recovered()
449-
}
450-
}
451-
}
452-
453-
// MARK: - nil
454-
455-
func nilIfFailure<Response, Error: Swift.Error>() -> DefferedTask<Response?>
456-
where ResultType == Result<Response, Error> {
457-
return flatMap {
458-
switch $0 {
459-
case .success(let v):
460-
return v
461-
case .failure:
462-
return nil
463-
}
464-
}
465-
}
466-
467-
// MARK: - unwrap
468-
469-
func unwrap<Response, Error: Swift.Error>(with value: @escaping @autoclosure () -> Response) -> DefferedResult<Response, Error>
470-
where ResultType == Result<Response?, Error> {
471-
return flatMap {
472-
switch $0 {
473-
case .success(let v):
474-
return .success(v ?? value())
475-
case .failure(let error):
476-
return .failure(error)
477-
}
478-
}
479-
}
480-
481-
func unwrap<Response, Error: Swift.Error>(_ value: @escaping () -> Response) -> DefferedResult<Response, Error>
482-
where ResultType == Result<Response?, Error> {
483-
return flatMap {
484-
switch $0 {
485-
case .success(let v):
486-
return .success(v ?? value())
487-
case .failure(let error):
488-
return .failure(error)
489-
}
490-
}
491-
}
492-
493-
func unwrap<Response, Error: Swift.Error>(orThrow newError: @escaping @autoclosure () -> Error) -> DefferedResult<Response, Error>
494-
where ResultType == Result<Response?, Error> {
495-
return flatMap {
496-
switch $0 {
497-
case .success(.none):
498-
return .failure(newError())
499-
case .success(.some(let v)):
500-
return .success(v)
501-
case .failure(let error):
502-
return .failure(error)
503-
}
504-
}
505-
}
506-
}
507-
#endif

Source/DefferedTask+Void.swift

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import Foundation
22

3-
#if swift(>=6.0)
43
public extension DefferedTask {
54
convenience init() where ResultType == Void {
65
self.init(execute: { $0(()) })
@@ -38,45 +37,3 @@ public extension DefferedTask {
3837
}
3938
}
4039
}
41-
#else
42-
public extension DefferedTask {
43-
convenience init() where ResultType == Void {
44-
self.init(execute: { $0(()) })
45-
}
46-
47-
static func success() -> DefferedTask
48-
where ResultType == Void {
49-
return .init(result: makeVoid())
50-
}
51-
52-
static func success<Error: Swift.Error>() -> DefferedResult<Void, Error>
53-
where ResultType == Result<Void, Error> {
54-
return .success(makeVoid())
55-
}
56-
57-
func flatMapVoid() -> DefferedTask<Void> {
58-
return flatMap(makeVoid)
59-
}
60-
61-
func mapVoid<T, Error: Swift.Error>() -> DefferedResult<Void, Error>
62-
where ResultType == Result<T, Error> {
63-
return map(makeVoid)
64-
}
65-
66-
func onComplete(_ callback: @escaping () -> Void) where ResultType == Void {
67-
onComplete { _ in
68-
callback()
69-
}
70-
}
71-
72-
func onComplete<Error: Swift.Error>(_ callback: @escaping () -> Void)
73-
where ResultType == Result<Void, Error> {
74-
onComplete { _ in
75-
callback()
76-
}
77-
}
78-
}
79-
80-
private func makeVoid() {}
81-
private func makeVoid(_: some Any) {}
82-
#endif

0 commit comments

Comments
 (0)