Syntax for Generator in Swift 2.0

It seems like the syntax for providing a generator in `SequenceType` has changed. Does anyone know how it should look like?

Answered by mwp in 9794022

This works for me in the Swift 2 Playground:


struct HexDigits: SequenceType {
    struct HexDigitsGenerator: GeneratorType {
        let hex = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]
        var index = 0
        mutating func next() -> String? { return index < 16 ? hex[index++] : nil }
    }
    func generate() -> HexDigitsGenerator { return HexDigitsGenerator() }
    func underestimateCount() -> Int { return 16 }
}
var hex = HexDigits()
hex.reverse()
Accepted Answer

This works for me in the Swift 2 Playground:


struct HexDigits: SequenceType {
    struct HexDigitsGenerator: GeneratorType {
        let hex = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"]
        var index = 0
        mutating func next() -> String? { return index < 16 ? hex[index++] : nil }
    }
    func generate() -> HexDigitsGenerator { return HexDigitsGenerator() }
    func underestimateCount() -> Int { return 16 }
}
var hex = HexDigits()
hex.reverse()
Syntax for Generator in Swift 2.0
 
 
Q