      */
     internal init(identifier: String) {
 
-        for device in DeviceType.all {
+		for device in DeviceType.allCases {
             for deviceId in device.identifiers {
                 guard identifier == deviceId else { continue }
                 self = device

    }
}


// MARK: - EnumProtocol

internal protocol EnumProtocol: Hashable {
    /// -returns: All Enum Values
    static var all: [Self] { get }
}

// MARK: -

// MARK: - Extensions

internal extension EnumProtocol {
    
    static var all: [Self] {
        typealias Type = Self
        let cases = AnySequence { () -> AnyIterator<Type> in
            var raw = 0
            return AnyIterator {
                let current: Self = withUnsafePointer(to: &raw) { $0.withMemoryRebound(to: Type.self, capacity: 1) { $0.pointee } }
                guard current.hashValue == raw else { return nil }
                raw += 1
                return current
            }
        }
        
        return Array(cases)
    }
}

}

/// Enum representing the different types of iOS devices available
public enum DeviceType: String, CaseIterable {
    case iPhone2G

    case iPhone3G
