Files
divkit/client/ios/DivKit/Expressions/Serialization/Expression+ValidSerializationValue.swift
T
pkurchatov 290a1febad reduced methods visibility
Немного причесал API в выражениях и разложил по папкам.
2022-09-13 16:18:22 +03:00

93 lines
1.9 KiB
Swift

import Foundation
import CommonCore
import Serialization
extension Expression where T == Bool {
func toValidSerializationValue() -> ValidSerializationValue {
switch self {
case let .value(value):
return value
case let .link(link):
return link.rawValue
}
}
}
extension Expression where T == Double {
func toValidSerializationValue() -> ValidSerializationValue {
switch self {
case let .value(value):
return value
case let .link(link):
return link.rawValue
}
}
}
extension Expression where T == Int {
func toValidSerializationValue() -> ValidSerializationValue {
switch self {
case let .value(value):
return value
case let .link(link):
return link.rawValue
}
}
}
extension Expression where T == Color {
func toValidSerializationValue() -> String {
switch self {
case let .value(value):
return value.hexString
case let .link(link):
return link.rawValue
}
}
}
extension Expression where T == String {
func toValidSerializationValue() -> String {
switch self {
case let .value(value):
return value
case let .link(link):
return link.rawValue
}
}
}
extension Expression where T == CFString {
func toValidSerializationValue() -> String {
switch self {
case let .value(value):
return String(value)
case let .link(link):
return link.rawValue
}
}
}
extension Expression where T == URL {
func toValidSerializationValue() -> String {
switch self {
case let .value(value):
return value.absoluteString
case let .link(link):
return link.rawValue
}
}
}
extension Expression where T: RawRepresentable, T.RawValue == String {
func toValidSerializationValue() -> String {
switch self {
case let .value(value):
return value.rawValue
case let .link(link):
return link.rawValue
}
}
}