summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadRustRuntime/MullvadApiCompletion.swift
blob: 5fc16e1d34716ee389a6e6aaeee3a45d6423ee58 (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
28
//
//  MullvadApiCompletion.swift
//  MullvadVPN
//
//  Created by Jon Petersson on 2025-01-16.
//  Copyright © 2025 Mullvad VPN AB. All rights reserved.
//

@_cdecl("mullvad_api_completion_finish")
func mullvadApiCompletionFinish(
    response: SwiftMullvadApiResponse,
    completionCookie: UnsafeMutableRawPointer
) {
    let completionBridge = Unmanaged<MullvadApiCompletion>
        .fromOpaque(completionCookie)
        .takeRetainedValue()
    let apiResponse = MullvadApiResponse(response: response)

    completionBridge.completion(apiResponse)
}

public class MullvadApiCompletion {
    public var completion: (MullvadApiResponse) -> Void

    public init(completion: @escaping ((MullvadApiResponse) -> Void)) {
        self.completion = completion
    }
}