88
99import Foundation
1010
11- extension String {
12- subscript( value: NSRange ) -> Substring {
11+ public extension String {
12+ public subscript( value: NSRange ) -> Substring {
1313 return self [ value. lowerBound ..< value. upperBound]
1414 }
1515}
1616
1717// MARK: - Subscripts
1818
19- extension String {
20- subscript( value: CountableClosedRange < Int > ) -> Substring {
19+ public extension String {
20+ public subscript( value: CountableClosedRange < Int > ) -> Substring {
2121 return self [ index ( at: value. lowerBound) ... index ( at: value. upperBound) ]
2222 }
2323
24- subscript( value: CountableRange < Int > ) -> Substring {
24+ public subscript( value: CountableRange < Int > ) -> Substring {
2525 return self [ index ( at: value. lowerBound) ..< index ( at: value. upperBound) ]
2626 }
2727
28- subscript( value: PartialRangeUpTo < Int > ) -> Substring {
28+ public subscript( value: PartialRangeUpTo < Int > ) -> Substring {
2929 return self [ ..< index ( at: value. upperBound) ]
3030 }
3131
32- subscript( value: PartialRangeThrough < Int > ) -> Substring {
32+ public subscript( value: PartialRangeThrough < Int > ) -> Substring {
3333 return self [ ... index ( at: value. upperBound) ]
3434 }
3535
36- subscript( value: PartialRangeFrom < Int > ) -> Substring {
36+ public subscript( value: PartialRangeFrom < Int > ) -> Substring {
3737 return self [ index ( at: value. lowerBound) ... ]
3838 }
3939
40- func index( at offset: Int ) -> String . Index {
40+ public func index( at offset: Int ) -> String . Index {
4141 return index ( startIndex, offsetBy: offset)
4242 }
4343}
4444
4545// MARK: - Safe subscripts
4646
47- extension String {
48- subscript( safe value: CountableClosedRange < Int > ) -> Substring {
47+ public extension String {
48+ public subscript( safe value: CountableClosedRange < Int > ) -> Substring {
4949 let lowerBound = max ( value. lowerBound, 0 )
5050 let upperBound = min ( value. upperBound, max ( count - 1 , 0 ) )
5151 return self [ index ( at: lowerBound) ... index ( at: upperBound) ]
5252 }
5353
54- subscript( safe value: CountableRange < Int > ) -> Substring {
54+ public subscript( safe value: CountableRange < Int > ) -> Substring {
5555 let lowerBound = max ( value. lowerBound, 0 )
5656 let upperBound = min ( value. upperBound, max ( count, 0 ) )
5757 return self [ index ( at: lowerBound) ..< index ( at: upperBound) ]
5858 }
5959
60- subscript( safe value: PartialRangeUpTo < Int > ) -> Substring {
60+ public subscript( safe value: PartialRangeUpTo < Int > ) -> Substring {
6161 let upperBound = min ( value. upperBound, max ( count, 0 ) )
6262 return self [ ..< index ( at: upperBound) ]
6363 }
6464
65- subscript( safe value: PartialRangeThrough < Int > ) -> Substring {
65+ public subscript( safe value: PartialRangeThrough < Int > ) -> Substring {
6666 let upperBound : Int
6767 if value. upperBound >= 0 {
6868 upperBound = min ( value. upperBound, max ( count - 1 , 0 ) )
@@ -74,7 +74,7 @@ extension String {
7474 return self [ ... index ( at: upperBound) ]
7575 }
7676
77- subscript( safe value: PartialRangeFrom < Int > ) -> Substring {
77+ public subscript( safe value: PartialRangeFrom < Int > ) -> Substring {
7878 let lowerBound = max ( value. lowerBound, 0 )
7979 return self [ index ( at: lowerBound) ... ]
8080 }
0 commit comments