Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct Candies {
- let candies: [String]
- }
- extension Candies: Sequence {
- func makeIterator() -> CandiesIterator {
- return CandiesIterator(sequence: candies, current: 0)
- }
- }
- struct CandiesIterator: IteratorProtocol {
- let sequence: [String]
- var current = 0
- mutating func next() -> String? {
- defer { current += 1 }
- return sequence.count > current ? sequence[current] : nil
- }
- }
- struct Whatevers<T> {
- let whatevers: [T]
- }
- extension Whatevers: Sequence {
- func makeIterator() -> Whatevers<T>.Iterator {
- return WhateversIterator(sequence: whatevers, current: 0)
- }
- }
- struct WhateversIterator<T>: IteratorProtocol {
- let sequence: [T]
- var current = 0
- mutating func next() -> WhateversIterator.Element? {
- defer { current += 1 }
- return sequence.count > current ? sequence[current] : nil
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement