diff --git a/SequenceTypeConformance.swift b/SequenceTypeConformance.swift new file mode 100644 index 0000000..89ab107 --- /dev/null +++ b/SequenceTypeConformance.swift @@ -0,0 +1,27 @@ +extension OrderedDictionary : SequenceType { + func generate() -> OrderedDictionaryGenerator { + return OrderedDictionaryGenerator(orderedDictionary: self) + } +} + +struct OrderedDictionaryGenerator: GeneratorType { + + var orderedDictionary: OrderedDictionary + var index = 0 + + init(orderedDictionary: OrderedDictionary) { + self.orderedDictionary = orderedDictionary + } + + mutating func next() -> (key, value)? { + if index < orderedDictionary.count { + let key = orderedDictionary.keys[index] + let value = orderedDictionary[index] + index += 1 + return(key, value!) + } else { + index = 0 + return nil + } + } +}