Files
divkit/client/ios/DivKitExtensions/Serialization+Extensions.swift
feldspar de137bd8ef Moved dictionary extension to separate file
commit_hash:b84d9d9539d3c41f922b158e1274cb6257d80a35
2025-04-13 21:53:29 +03:00

37 lines
934 B
Swift

import DivKit
import Foundation
extension Dictionary where Key == String {
func getOptionalBool(
_ key: Key,
expressionResolver: ExpressionResolver
) throws -> Bool? {
let result: Bool?
if let value = self[key] as? Bool {
result = value
} else if let expression: String = try getOptionalField(key) {
result = expressionResolver.resolve(expression) as? Bool
} else {
return nil
}
return result
}
func getOptionalFloat(
_ key: Key,
expressionResolver: ExpressionResolver
) throws -> CGFloat? {
let result: Double?
if let value = self[key] as? Double {
result = value
} else if let value = self[key] as? Int {
result = Double(value)
} else if let expression: String = try getOptionalField(key) {
result = expressionResolver.resolveNumeric(expression)
} else {
return nil
}
return result.map { CGFloat($0) }
}
}