ExtensionData.swift 596 B

123456789101112131415161718192021222324252627
  1. import Foundation
  2. extension Data {
  3. var bytes : [UInt8]{
  4. return [UInt8](self)
  5. }
  6. }
  7. extension Data {
  8. struct HexEncodingOptions: OptionSet {
  9. let rawValue: Int
  10. static let upperCase = HexEncodingOptions(rawValue: 1 << 0)
  11. }
  12. func hexEncodedString(options: HexEncodingOptions = []) -> String {
  13. let format = options.contains(.upperCase) ? "%02hhX" : "%02hhx"
  14. return map { String(format: format, $0) }.joined()
  15. }
  16. }
  17. extension Data {
  18. var hexDescription: String {
  19. return reduce("") {$0 + String(format: "%02x", $1)}
  20. }
  21. }