mirror of
https://github.com/divkit/divkit.git
synced 2026-05-07 20:02:32 +00:00
b489b36d92
commit_hash:f7df7bc7f68f49dd4b005691712d8784e092107e
37 lines
932 B
Swift
37 lines
932 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) }
|
|
}
|
|
}
|