2021-03-02 09:27:11 +01:00
|
|
|
//
|
|
|
|
// PollItem.swift
|
|
|
|
// Mastodon
|
|
|
|
//
|
|
|
|
// Created by MainasuK Cirno on 2021-3-2.
|
|
|
|
//
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
import CoreData
|
|
|
|
|
|
|
|
enum PollItem {
|
2021-03-02 12:10:45 +01:00
|
|
|
case opion(objectID: NSManagedObjectID, attribute: Attribute)
|
2021-03-02 09:27:11 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extension PollItem {
|
|
|
|
class Attribute: Hashable {
|
2021-03-03 09:12:48 +01:00
|
|
|
// var pollVotable: Bool
|
|
|
|
var isOptionVoted: Bool
|
2021-03-02 09:27:11 +01:00
|
|
|
|
2021-03-03 09:12:48 +01:00
|
|
|
init(isOptionVoted: Bool) {
|
|
|
|
// self.pollVotable = pollVotable
|
|
|
|
self.isOptionVoted = isOptionVoted
|
2021-03-02 12:10:45 +01:00
|
|
|
}
|
|
|
|
|
2021-03-02 09:27:11 +01:00
|
|
|
static func == (lhs: PollItem.Attribute, rhs: PollItem.Attribute) -> Bool {
|
2021-03-03 09:12:48 +01:00
|
|
|
return lhs.isOptionVoted == rhs.isOptionVoted
|
2021-03-02 09:27:11 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
func hash(into hasher: inout Hasher) {
|
2021-03-03 09:12:48 +01:00
|
|
|
hasher.combine(isOptionVoted)
|
2021-03-02 09:27:11 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
extension PollItem: Equatable {
|
|
|
|
static func == (lhs: PollItem, rhs: PollItem) -> Bool {
|
|
|
|
switch (lhs, rhs) {
|
2021-03-02 12:10:45 +01:00
|
|
|
case (.opion(let objectIDLeft, _), .opion(let objectIDRight, _)):
|
2021-03-02 09:27:11 +01:00
|
|
|
return objectIDLeft == objectIDRight
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
extension PollItem: Hashable {
|
|
|
|
func hash(into hasher: inout Hasher) {
|
|
|
|
switch self {
|
2021-03-02 12:10:45 +01:00
|
|
|
case .opion(let objectID, _):
|
2021-03-02 09:27:11 +01:00
|
|
|
hasher.combine(objectID)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|