|
- extension Bus {
- /// Пропускаем далее предоставленные ключи.
- static func convertKeyValue<T>(
- _ keys: Set<String>,
- _ v: (key: String, value: Any)
- ) -> (String, T)? {
- guard
- keys.contains(v.key),
- let value = v.value as? T
- else {
- return nil
- }
- return (v.key, value)
- }
-
- /// Обрабатываем.
- static func processKeyValue<Src, Dst>(
- _ v: (key: String, value: Any),
- _ keyIn: String,
- _ handler: @escaping ((Src) -> Dst?)
- ) -> Dst? {
- guard
- v.key == keyIn,
- let vIn = v.value as? Src
- else {
- return nil
- }
- return handler(vIn)
- }
- }
|