Files
divkit/client/ios/DivKitExtensions/Serialization+Extensions.swift
booster b489b36d92 Fixed file path in precommit hook
commit_hash:f7df7bc7f68f49dd4b005691712d8784e092107e
2025-07-17 17:28:31 +03:00

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) }
}
}