mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
53 lines
1.8 KiB
Swift
53 lines
1.8 KiB
Swift
import Postbox
|
|
|
|
public struct PeerStatusSettings: PostboxCoding, Equatable {
|
|
public struct Flags: OptionSet {
|
|
public var rawValue: Int32
|
|
|
|
public init(rawValue: Int32) {
|
|
self.rawValue = rawValue
|
|
}
|
|
|
|
public static let canReport = Flags(rawValue: 1 << 1)
|
|
public static let canShareContact = Flags(rawValue: 1 << 2)
|
|
public static let canBlock = Flags(rawValue: 1 << 3)
|
|
public static let canAddContact = Flags(rawValue: 1 << 4)
|
|
public static let addExceptionWhenAddingContact = Flags(rawValue: 1 << 5)
|
|
public static let canReportIrrelevantGeoLocation = Flags(rawValue: 1 << 6)
|
|
public static let autoArchived = Flags(rawValue: 1 << 7)
|
|
public static let suggestAddMembers = Flags(rawValue: 1 << 8)
|
|
|
|
}
|
|
|
|
public var flags: PeerStatusSettings.Flags
|
|
public var geoDistance: Int32?
|
|
|
|
public init() {
|
|
self.flags = PeerStatusSettings.Flags()
|
|
self.geoDistance = nil
|
|
}
|
|
|
|
public init(flags: PeerStatusSettings.Flags, geoDistance: Int32? = nil) {
|
|
self.flags = flags
|
|
self.geoDistance = geoDistance
|
|
}
|
|
|
|
public init(decoder: PostboxDecoder) {
|
|
self.flags = Flags(rawValue: decoder.decodeInt32ForKey("flags", orElse: 0))
|
|
self.geoDistance = decoder.decodeOptionalInt32ForKey("geoDistance")
|
|
}
|
|
|
|
public func encode(_ encoder: PostboxEncoder) {
|
|
encoder.encodeInt32(self.flags.rawValue, forKey: "flags")
|
|
if let geoDistance = self.geoDistance {
|
|
encoder.encodeInt32(geoDistance, forKey: "geoDistance")
|
|
} else {
|
|
encoder.encodeNil(forKey: "geoDistance")
|
|
}
|
|
}
|
|
|
|
public func contains(_ member: PeerStatusSettings.Flags) -> Bool {
|
|
return self.flags.contains(member)
|
|
}
|
|
}
|