Swiftgram/TelegramCore/SecureIdForm.swift
Peter Iakovlev 33cc8132be no message
2018-03-27 12:03:39 +04:00

77 lines
2.0 KiB
Swift

import Foundation
#if os(macOS)
import PostboxMac
#else
import Postbox
#endif
public enum SecureIdValue: Equatable {
case identity(SecureIdIdentityValue)
case phone(SecureIdPhoneValue)
case email(SecureIdEmailValue)
public static func ==(lhs: SecureIdValue, rhs: SecureIdValue) -> Bool {
switch lhs {
case let .identity(value):
if case .identity(value) = rhs {
return true
} else {
return false
}
case let .phone(value):
if case .phone(value) = rhs {
return true
} else {
return false
}
case let .email(value):
if case .email(value) = rhs {
return true
} else {
return false
}
}
}
func serialize() -> (Data, [SecureIdFileReference])? {
switch self {
case let .identity(value):
return value.serialize()
case .phone, .email:
return nil
}
}
}
public enum SecureIdRequestedFormField {
case identity
case address
case phone
case email
}
public struct SecureIdForm: Equatable {
public let peerId: PeerId
public let requestedFields: [SecureIdRequestedFormField]
public let values: [SecureIdValue]
public init(peerId: PeerId, requestedFields: [SecureIdRequestedFormField], values: [SecureIdValue]) {
self.peerId = peerId
self.requestedFields = requestedFields
self.values = values
}
public static func ==(lhs: SecureIdForm, rhs: SecureIdForm) -> Bool {
if lhs.peerId != rhs.peerId {
return false
}
if lhs.requestedFields != rhs.requestedFields {
return false
}
if lhs.values != rhs.values {
return false
}
return true
}
}