Проверка шаблона шины для iOS
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

Bus.Aux.swift 661B

10ヶ月前
123456789101112131415161718192021222324252627282930
  1. extension Bus {
  2. /// Пропускаем далее предоставленные ключи.
  3. static func convertKeyValue<T>(
  4. _ keys: Set<String>,
  5. _ v: (key: String, value: Any)
  6. ) -> (String, T)? {
  7. guard
  8. keys.contains(v.key),
  9. let value = v.value as? T
  10. else {
  11. return nil
  12. }
  13. return (v.key, value)
  14. }
  15. /// Обрабатываем.
  16. static func processKeyValue<Src, Dst>(
  17. _ v: (key: String, value: Any),
  18. _ keyIn: String,
  19. _ handler: @escaping ((Src) -> Dst?)
  20. ) -> Dst? {
  21. guard
  22. v.key == keyIn,
  23. let vIn = v.value as? Src
  24. else {
  25. return nil
  26. }
  27. return handler(vIn)
  28. }
  29. }