Files
divkit/client/ios/DivKit/Expressions/Functions/ComparisonOperators.swift
T
pkurchatov 976bc60b76 Expression errors refactoring
0f64602cade0949128541074d27144a4f680418a
2024-05-13 19:41:36 +03:00

37 lines
822 B
Swift

import Foundation
enum ComparisonOperators: String, CaseIterable {
case greater = ">"
case greaterOrEqual = ">="
case less = "<"
case lessOrEqual = "<="
var function: Function {
OverloadedFunction(
functions: [
makeFunction() as FunctionBinary<Int, Int, Bool>,
makeFunction() as FunctionBinary<Double, Double, Bool>,
makeFunction() as FunctionBinary<Date, Date, Bool>,
],
makeError: {
ExpressionError.unsupportedType(op: rawValue, args: $0)
}
)
}
private func makeFunction<T: Comparable>() -> FunctionBinary<T, T, Bool> {
FunctionBinary {
switch self {
case .greater:
$0 > $1
case .greaterOrEqual:
$0 >= $1
case .less:
$0 < $1
case .lessOrEqual:
$0 <= $1
}
}
}
}