Jelajahi Sumber

Merge pull request #763 from valeriyvan/toHexString

To hex string
Marcin Krzyzanowski 5 tahun lalu
induk
melakukan
1755bd0917

+ 2 - 2
Sources/CryptoSwift/Array+Extension.swift

@@ -64,12 +64,12 @@ extension Array where Element == UInt8 {
   }
   }
 
 
   public func toHexString() -> String {
   public func toHexString() -> String {
-    `lazy`.reduce("") {
+    `lazy`.reduce(into: "") {
       var s = String($1, radix: 16)
       var s = String($1, radix: 16)
       if s.count == 1 {
       if s.count == 1 {
         s = "0" + s
         s = "0" + s
       }
       }
-      return $0 + s
+      $0 += s
     }
     }
   }
   }
 }
 }

+ 13 - 0
Tests/CryptoSwiftTests/ExtensionsTest.swift

@@ -82,6 +82,19 @@ final class ExtensionsTest: XCTestCase {
     let hex = array.toHexString()
     let hex = array.toHexString()
     XCTAssertEqual(str, hex)
     XCTAssertEqual(str, hex)
   }
   }
+
+  func testToHexStringPerformance() {
+    let len = 100000
+    let a = [UInt8](unsafeUninitializedCapacity: len) { buf, count in
+        for i in 0..<len {
+            buf[i] = UInt8.random(in: 0...UInt8.max)
+        }
+        count = len
+    }
+    self.measure {
+        _ = a.toHexString()
+    }
+  }
 }
 }
 
 
 extension ExtensionsTest {
 extension ExtensionsTest {