diff options
Diffstat (limited to 'Sources/SwiftChessNeo/InternalTypes.swift')
-rw-r--r-- | Sources/SwiftChessNeo/InternalTypes.swift | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Sources/SwiftChessNeo/InternalTypes.swift b/Sources/SwiftChessNeo/InternalTypes.swift new file mode 100644 index 0000000..c418c64 --- /dev/null +++ b/Sources/SwiftChessNeo/InternalTypes.swift @@ -0,0 +1,63 @@ +// +// InternalTypes.swift +// Sage +// +// Copyright 2016-2017 Nikolai Vazquez +// Modified by SuperGeroy +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#if os(OSX) + import Cocoa + internal typealias _View = NSView + internal typealias _Color = NSColor +#elseif os(iOS) || os(tvOS) + import UIKit + internal typealias _View = UIView + internal typealias _Color = UIColor +#endif + +internal extension Optional { + + var _altDescription: String { + return self.map({ String(describing: $0) }) ?? "nil" + } + +} + +extension RawRepresentable where RawValue == Int, Self: Comparable { + + internal func _to(_ other: Self) -> [Self] { + if other > self { + return (rawValue...other.rawValue).compactMap(Self.init(rawValue:)) + } else if other < self { + let values = (other.rawValue...rawValue).reversed() + return values.compactMap(Self.init(rawValue:)) + } else { + return [self] + } + } + + internal func _between(_ other: Self) -> [Self] { + if other > self { + return (rawValue + 1 ..< other.rawValue).compactMap(Self.init(rawValue:)) + } else if other < self { + let values = (other.rawValue + 1 ..< rawValue).reversed() + return values.compactMap(Self.init(rawValue:)) + } else { + return [] + } + } + +} |