Skip to content

Commit dd36fae

Browse files
committed
feat: add a Receivable promise
1 parent 278377d commit dd36fae

File tree

10 files changed

+79
-358
lines changed

10 files changed

+79
-358
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
.DS_Store
22
*.xcodeproj
3+
.swiftpm/
4+
.swiftpm/*
35
!Followers.xcodeproj
46
/.build
57
/Packages

.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata

Lines changed: 0 additions & 7 deletions
This file was deleted.

.swiftpm/xcode/xcshareddata/xcschemes/ComposableRequest-Package.xcscheme

Lines changed: 0 additions & 217 deletions
This file was deleted.

.swiftpm/xcode/xcshareddata/xcschemes/ComposableRequestTests.xcscheme

Lines changed: 0 additions & 55 deletions
This file was deleted.

.swiftpm/xcode/xcshareddata/xcschemes/Requests.xcscheme

Lines changed: 0 additions & 67 deletions
This file was deleted.
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
//
2+
// Receivables+Once.swift
3+
// ComposableRequest
4+
//
5+
// Created by Stefano Bertagno on 27/08/21.
6+
//
7+
8+
import Foundation
9+
10+
public extension Receivables {
11+
/// A `struct` defining a `Requester`-based receivable
12+
/// receiving immediately either a success or failure.
13+
struct Once<Requester: Requests.Requester, Success>: Receivable {
14+
/// The underlying result.
15+
public let result: Result<Success, Error>
16+
17+
/// Init.
18+
///
19+
/// - parameters:
20+
/// - success: A valid `Success`.
21+
/// - requester: A valid `Requester`.
22+
public init(output success: Success, with requester: Requester) {
23+
self.result = .success(success)
24+
}
25+
26+
/// Init.
27+
///
28+
/// - parameters:
29+
/// - failure: A valid `Error`.
30+
/// - requester: A valid `Requester`.
31+
public init(error failure: Error, with requester: Requester) {
32+
self.result = .failure(failure)
33+
}
34+
}
35+
}
36+
37+
public extension Requester {
38+
/// The associated once type.
39+
typealias Once<S> = Receivables.Once<Self, S>
40+
}

0 commit comments

Comments
 (0)