Files
SwiftLint/Source/SwiftLintFramework/Models/RuleIdentifier.swift
T
JP Simard b83e0991b9 Remove all file headers
The MIT license doesn't require that all files be prepended with this
licensing or copyright information. Realm confirmed that they're ok with this
change. This will enable some companies to contribute to SwiftLint and the
date & authorship information will remain accessible via git source control.
2018-05-04 13:42:02 -07:00

35 lines
895 B
Swift

import Foundation
public enum RuleIdentifier: Hashable, ExpressibleByStringLiteral {
case all
case single(identifier: String)
private static let allStringRepresentation = "all"
public var hashValue: Int {
return stringRepresentation.hashValue
}
public var stringRepresentation: String {
switch self {
case .all:
return RuleIdentifier.allStringRepresentation
case .single(let identifier):
return identifier
}
}
public init(_ value: String) {
self = value == RuleIdentifier.allStringRepresentation ? .all : .single(identifier: value)
}
public init(stringLiteral value: String) {
self = RuleIdentifier(value)
}
public static func == (lhs: RuleIdentifier, rhs: RuleIdentifier) -> Bool {
return lhs.stringRepresentation == rhs.stringRepresentation
}
}