Круговой массив Swift

extension Array {
	subscript(circular index: Int) -> Element? {
		guard index >= 0 && !isEmpty else { return nil }
		guard index >= count else { return self[index] }
		return self[index % count]
	}
}
Quaint Quail