mastodon-ios/Mastodon/Diffiable/Item/Item.swift

42 lines
860 B
Swift
Raw Normal View History

2021-01-28 09:10:30 +01:00
//
// Item.swift
// Mastodon
//
// Created by sxiaojian on 2021/1/27.
//
import CoreData
import CoreDataStack
2021-02-03 06:01:50 +01:00
import Foundation
import MastodonSDK
2021-01-28 09:10:30 +01:00
/// Note: update Equatable when change case
enum Item {
// normal list
case toot(objectID: NSManagedObjectID)
2021-02-03 06:01:50 +01:00
case bottomLoader
2021-01-28 09:10:30 +01:00
}
extension Item: Equatable {
static func == (lhs: Item, rhs: Item) -> Bool {
switch (lhs, rhs) {
case (.toot(let objectIDLeft), .toot(let objectIDRight)):
return objectIDLeft == objectIDRight
2021-02-03 06:01:50 +01:00
default:
return false
2021-01-28 09:10:30 +01:00
}
}
}
extension Item: Hashable {
func hash(into hasher: inout Hasher) {
switch self {
case .toot(let objectID):
hasher.combine(objectID)
2021-02-03 06:01:50 +01:00
case .bottomLoader:
hasher.combine(String(describing: Item.bottomLoader.self))
2021-01-28 09:10:30 +01:00
}
}
}