Skip to content

Commit

Permalink
add string range accessors
Browse files Browse the repository at this point in the history
  • Loading branch information
ConfusedVorlon committed Apr 22, 2021
1 parent cb5c239 commit 1bd3b0f
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions Sources/HSHelpers/String+HS.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ public extension LosslessStringConvertible {
}
}

//https://stackoverflow.com/questions/24092884/get-nth-character-of-a-string-in-swift-programming-language/38215613#38215613
extension StringProtocol {
subscript(_ offset: Int) -> Element { self[index(startIndex, offsetBy: offset)] }
subscript(_ range: Range<Int>) -> SubSequence { prefix(range.lowerBound+range.count).suffix(range.count) }
subscript(_ range: ClosedRange<Int>) -> SubSequence { prefix(range.lowerBound+range.count).suffix(range.count) }
subscript(_ range: PartialRangeThrough<Int>) -> SubSequence { prefix(range.upperBound.advanced(by: 1)) }
subscript(_ range: PartialRangeUpTo<Int>) -> SubSequence { prefix(range.upperBound) }
subscript(_ range: PartialRangeFrom<Int>) -> SubSequence { suffix(Swift.max(0, count-range.lowerBound)) }
}

public extension String {


Expand Down

0 comments on commit 1bd3b0f

Please sign in to comment.