summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadVPN/RelayCache/AnyRelayCacheObserver.swift
blob: b588530311afe2e6d8cacb61fae538e24028d40c (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
29
30
31
//
//  AnyRelayCacheObserver.swift
//  AnyRelayCacheObserver
//
//  Created by pronebird on 09/09/2021.
//  Copyright © 2021 Mullvad VPN AB. All rights reserved.
//

import Foundation

extension RelayCache {

    final class AnyRelayCacheObserver: WeakObserverBox, RelayCacheObserver {
        typealias Wrapped = RelayCacheObserver

        private(set) weak var inner: RelayCacheObserver?

        init<T: RelayCacheObserver>(_ inner: T) {
            self.inner = inner
        }

        func relayCache(_ relayCache: RelayCache.Tracker, didUpdateCachedRelays cachedRelays: CachedRelays) {
            inner?.relayCache(relayCache, didUpdateCachedRelays: cachedRelays)
        }

        static func == (lhs: AnyRelayCacheObserver, rhs: AnyRelayCacheObserver) -> Bool {
            return lhs.inner === rhs.inner
        }
    }

}