Refactor SyncCore

This commit is contained in:
Peter
2019-10-21 16:58:00 +04:00
parent 75aa77faa8
commit 10692a323e
1162 changed files with 12205 additions and 10925 deletions

View File

@@ -0,0 +1,61 @@
import Postbox
public struct MessageReaction: Equatable, PostboxCoding {
public var value: String
public var count: Int32
public var isSelected: Bool
public init(value: String, count: Int32, isSelected: Bool) {
self.value = value
self.count = count
self.isSelected = isSelected
}
public init(decoder: PostboxDecoder) {
self.value = decoder.decodeStringForKey("v", orElse: "")
self.count = decoder.decodeInt32ForKey("c", orElse: 0)
self.isSelected = decoder.decodeInt32ForKey("s", orElse: 0) != 0
}
public func encode(_ encoder: PostboxEncoder) {
encoder.encodeString(self.value, forKey: "v")
encoder.encodeInt32(self.count, forKey: "c")
encoder.encodeInt32(self.isSelected ? 1 : 0, forKey: "s")
}
}
public final class ReactionsMessageAttribute: MessageAttribute {
public let reactions: [MessageReaction]
public init(reactions: [MessageReaction]) {
self.reactions = reactions
}
required public init(decoder: PostboxDecoder) {
self.reactions = decoder.decodeObjectArrayWithDecoderForKey("r")
}
public func encode(_ encoder: PostboxEncoder) {
encoder.encodeObjectArray(self.reactions, forKey: "r")
}
}
public final class PendingReactionsMessageAttribute: MessageAttribute {
public let value: String?
public init(value: String?) {
self.value = value
}
required public init(decoder: PostboxDecoder) {
self.value = decoder.decodeOptionalStringForKey("v")
}
public func encode(_ encoder: PostboxEncoder) {
if let value = self.value {
encoder.encodeString(value, forKey: "v")
} else {
encoder.encodeNil(forKey: "v")
}
}
}