CutBox.app

Coverage Report

Created: 2024-03-12 03:40

.../Source/Extensions/Int+doTimes.swift
Line
Count
Source
1
//
2
//  Int+doTimes.swift
3
//  CutBox
4
//
5
//  Created by Jason Milkins on 22/8/23.
6
//  Copyright © 2023 ocodo. All rights reserved.
7
//
8
9
import Foundation
10
11
extension Int {
12
    /// Loop equivalent to Ruby's `int.times {|count| code }`
13
    /// Usage: `doTimes { code with $0 }`
14
4
    func doTimes(_ code: (Int) -> Void) {
15
4
        guard self > 0 else {
16
1
            return
17
3
        }
18
1.12k
        for count in 0..<self {
19
1.12k
            code(count)
20
1.12k
        }
21
3
    }
22
23
    /// Loop equivalent to Ruby's `int.times { code }`
24
    /// Usage: `doTimes { code }`
25
3
    func doTimes(_ code: () -> Void) {
26
3
        guard self > 0 else {
27
1
            return
28
2
        }
29
111
        for _ in 0..<self {
30
111
            code()
31
111
        }
32
2
    }
33
}