summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadVPN/Promise/PromiseObserver.swift
blob: 89e205924960d128d0ea014240824e46df73d5d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//
//  PromiseObserver.swift
//  PromiseObserver
//
//  Created by pronebird on 22/08/2021.
//  Copyright © 2021 Mullvad VPN AB. All rights reserved.
//

import Foundation

protocol PromiseObserver {
    associatedtype Value

    func receiveCompletion(_ completion: PromiseCompletion<Value>)
}

final class AnyPromiseObserver<Value>: PromiseObserver {
    private let onReceiveCompletion: (PromiseCompletion<Value>) -> Void

    init(_ receiveCompletionHandler: @escaping (PromiseCompletion<Value>) -> Void) {
        onReceiveCompletion = receiveCompletionHandler
    }

    func receiveCompletion(_ completion: PromiseCompletion<Value>) {
        onReceiveCompletion(completion)
    }
}