mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-17 02:49:57 +00:00
77 lines
2.0 KiB
Swift
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
|
|
}
|
|
}
|