| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | ////  DeprecationWarner.swift//  Platform////  Created by Shai Mishali on 1/9/18.//  Copyright © 2018 Krunoslav Zaher. All rights reserved.//import Foundation#if DEBUG    class DeprecationWarner {        private static var warned = Set<Kind>()        private static var _lock = NSRecursiveLock()                static func warnIfNeeded(_ kind: Kind) {            _lock.lock(); defer { _lock.unlock() }            guard !warned.contains(kind) else { return }                        warned.insert(kind)            print("ℹ️ [DEPRECATED] \(kind.message)")        }    }        extension DeprecationWarner {        enum Kind {            case variable            case globalTestFunctionNext            case globalTestFunctionError            case globalTestFunctionCompleted                        var message: String {                switch self {                case .variable: return "`Variable` is planned for future deprecation. Please consider `BehaviorRelay` as a replacement. Read more at: https://git.io/vNqvx"                case .globalTestFunctionNext: return "The `next()` global function is planned for future deprecation. Please use `Recorded.next()` instead."                case .globalTestFunctionError: return "The `error()` global function is planned for future deprecation. Please use `Recorded.error()` instead."                case .globalTestFunctionCompleted: return "The `completed()` global function is planned for future deprecation. Please use `Recorded.completed()` instead."                }            }        }    }#endif
 |