diff --git a/launchers/macosx/I2PLauncher/Utils/StringExtensions.swift b/launchers/macosx/I2PLauncher/Utils/StringExtensions.swift index 1bd3f1898a3e3bb86d68e83ca62e0f7b0af98152..5bce392d5570611e763fb13753a2faf4de381170 100644 --- a/launchers/macosx/I2PLauncher/Utils/StringExtensions.swift +++ b/launchers/macosx/I2PLauncher/Utils/StringExtensions.swift @@ -31,5 +31,44 @@ extension String { public func splitByColon() -> [String] { return self.split { $0 == ":" }.map(String.init) } + + func leftPadding(toLength: Int, withPad character: Character) -> String { + let stringLength = self.count + if stringLength < toLength { + return String(repeatElement(character, count: toLength - stringLength)) + self + } else { + return String(self.suffix(toLength)) + } + } +} + + +extension String { + subscript (i: Int) -> Character { + return self[index(startIndex, offsetBy: i)] + } + subscript (bounds: CountableRange<Int>) -> Substring { + let start = index(startIndex, offsetBy: bounds.lowerBound) + let end = index(startIndex, offsetBy: bounds.upperBound) + return self[start ..< end] + } + subscript (bounds: CountableClosedRange<Int>) -> Substring { + let start = index(startIndex, offsetBy: bounds.lowerBound) + let end = index(startIndex, offsetBy: bounds.upperBound) + return self[start ... end] + } + subscript (bounds: CountablePartialRangeFrom<Int>) -> Substring { + let start = index(startIndex, offsetBy: bounds.lowerBound) + let end = index(endIndex, offsetBy: -1) + return self[start ... end] + } + subscript (bounds: PartialRangeThrough<Int>) -> Substring { + let end = index(startIndex, offsetBy: bounds.upperBound) + return self[startIndex ... end] + } + subscript (bounds: PartialRangeUpTo<Int>) -> Substring { + let end = index(startIndex, offsetBy: bounds.upperBound) + return self[startIndex ..< end] + } }