Skip to content

Instantly share code, notes, and snippets.

@sveinhal
Last active June 13, 2016 15:17
Show Gist options
  • Save sveinhal/971e2e65ba746af2feb07f332f3f1e6d to your computer and use it in GitHub Desktop.
Save sveinhal/971e2e65ba746af2feb07f332f3f1e6d to your computer and use it in GitHub Desktop.
struct AnyGenerator<Element>: GeneratorType {
init<G: GeneratorType where G.Element == Element>(_ gen: G) {
var gen = gen
self._next = { gen.next() }
}
private let _next: () -> Element?
func next() -> Element? {
return _next()
}
}
struct AnySequence<Element>: SequenceType {
init<S: SequenceType where S.Generator.Element == Element>(_ seq: S) {
self.underestimateCount = seq.underestimateCount
self._generate = { AnyGenerator(seq.generate()) }
}
private let _generate: () -> AnyGenerator<Element>
func generate() -> AnyGenerator<Element> {
return _generate()
}
let underestimateCount: () -> Int
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment