Skip to content

Instantly share code, notes, and snippets.

@haoyu-c
Created April 19, 2020 15:52
Show Gist options
  • Save haoyu-c/9285977c7f3296d2189e53e130370f1e to your computer and use it in GitHub Desktop.
Save haoyu-c/9285977c7f3296d2189e53e130370f1e to your computer and use it in GitHub Desktop.
class HYAnyIterator<Element>: IteratorProtocol {
var hyAnyIteratorHelper: HYAnyIterator<Element>?
init<Iter: IteratorProtocol>(_ iter: Iter?) where Iter.Element == Element {
if (iter == nil) {
return
}
hyAnyIteratorHelper = HYAnyIteratorHelper(iter)
}
func next() -> Element? {
hyAnyIteratorHelper?.next()
}
}
class HYAnyIteratorHelper<IterHelper: IteratorProtocol>: HYAnyIterator<IterHelper.Element> {
var iter: IterHelper?
init(_ iter: IterHelper?) {
self.iter = iter
let nilVal: IterHelper? = nil
super.init(nilVal)
}
override func next() -> IterHelper.Element? {
return iter?.next()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment