 ///
 /// For iOS devices, only devices supporting iOS 8 are included.
 
-public enum Device {
+public enum Device: CaseIterable {
 
 	/// - iPhone4S: iPhone 4S.
 	case iPhone4S

		.iPhone8,
		.iPhone8Plus,
		.iPhoneX,
		.iPodTouch5G,
		.iPodTouch6G,
		.appleTV4,
		.appleTV4K,
		.watch,
		.watchSeries1,
		.watchSeries2,
		.watchSeries3,
		.iPad2,
		.iPad3,
		.iPad4,
		.iPad5,
		.iPadAir,
		.iPadAir2,
		.iPadPro12Inch,
		.iPadPro9Inch,
		.iPadPro12Inch2G,
		.iPadPro10Inch,
		.iPadMini,
		.iPadMini2,
		.iPadMini3,
		.iPadMini4,
	]

}

	case appleTV4K

	/// - watch: The original Apple Watch.
	case watch(Display.Size)
	/// - watchSeries1: Apple Watch Series 1.
	case watchSeries1(Display.Size)
	/// - watchSeries2: Apple Watch Series 2.
	case watchSeries2(Display.Size)
	/// - watchSeries3: Apple Watch Series 3.
	case watchSeries3(Display.Size)
	/// - watchSeries4: Apple Watch Series 4.
	case watchSeries4(Display.Size)

	/// - simulator: A simulator for the associated device model.
	indirect case simulator(Device)
