From 969bc2dee31de84ecaae12e1f14a3e4712a00ebc Mon Sep 17 00:00:00 2001
From: meeh <meeh@mail.i2p>
Date: Thu, 11 Oct 2018 16:48:10 +0000
Subject: [PATCH] OSX Launcher: String extensions update

---
 .../I2PLauncher/Utils/StringExtensions.swift  | 39 +++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/launchers/macosx/I2PLauncher/Utils/StringExtensions.swift b/launchers/macosx/I2PLauncher/Utils/StringExtensions.swift
index 1bd3f1898a..5bce392d55 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]
+  }
 }
 
-- 
GitLab