diff --git a/Frameworks/Articles/Article.swift b/Frameworks/Articles/Article.swift index 32368f21c..17f9da9c7 100644 --- a/Frameworks/Articles/Article.swift +++ b/Frameworks/Articles/Article.swift @@ -27,10 +27,7 @@ public struct Article: Hashable { public let authors: Set? public let attachments: Set? public let status: ArticleStatus - public var hashValue: Int { - return articleID.hashValue - } - + public init(accountID: String, articleID: String?, feedID: String, uniqueID: String, title: String?, contentHTML: String?, contentText: String?, url: String?, externalURL: String?, summary: String?, imageURL: String?, bannerImageURL: String?, datePublished: Date?, dateModified: Date?, authors: Set?, attachments: Set?, status: ArticleStatus) { self.accountID = accountID @@ -59,20 +56,23 @@ public struct Article: Hashable { } public static func calculatedArticleID(feedID: String, uniqueID: String) -> String { - return databaseIDWithString("\(feedID) \(uniqueID)") } + + // MARK: - Hashable + + public func hash(into hasher: inout Hasher) { + hasher.combine(articleID) + } } public extension Set where Element == Article { public func articleIDs() -> Set { - return Set(map { $0.articleID }) } public func unreadArticles() -> Set
{ - let articles = self.filter { !$0.status.read } return Set(articles) } @@ -80,8 +80,7 @@ public extension Set where Element == Article { public extension Array where Element == Article { - public func articleIDs() -> [String] { - + public func articleIDs() -> [String] { return map { $0.articleID } } }