Files
divkit/client/ios/DivKit/Expressions/Functions/EqualityOperators.swift
T
pkurchatov b52d252840 Added DivArray typealias
commit_hash:9dbe7aa4ff668c8ae8697619c6033d567d248800
2024-12-22 00:40:39 +03:00

38 lines
1.1 KiB
Swift

import Foundation
import VGSL
enum EqualityOperators: String, CaseIterable {
case equals = "=="
case notEquals = "!="
var function: Function {
OverloadedFunction(
functions: [
makeFunction() as FunctionBinary<String, String, Bool>,
makeFunction() as FunctionBinary<Int, Int, Bool>,
makeFunction() as FunctionBinary<Double, Double, Bool>,
makeFunction() as FunctionBinary<Bool, Bool, Bool>,
makeFunction() as FunctionBinary<Date, Date, Bool>,
makeFunction() as FunctionBinary<RGBAColor, RGBAColor, Bool>,
makeFunction() as FunctionBinary<URL, URL, Bool>,
makeFunction() as FunctionBinary<DivDictionary, DivDictionary, Bool>,
makeFunction() as FunctionBinary<DivArray, DivArray, Bool>,
],
makeError: {
ExpressionError.unsupportedType(op: rawValue, args: $0)
}
)
}
private func makeFunction<T: Equatable>() -> FunctionBinary<T, T, Bool> {
FunctionBinary {
switch self {
case .equals:
$0 == $1
case .notEquals:
$0 != $1
}
}
}
}