You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/SessionUtilitiesKit/General/Data+Utilities.swift

27 lines
768 B
Swift

// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
import Foundation
public extension Data {
func decoded<T: Decodable>(as type: T.Type, using dependencies: Dependencies = Dependencies()) throws -> T {
do { return try JSONDecoder(using: dependencies).decode(type, from: self) }
catch { throw HTTPError.parsingFailed }
}
func appending(_ other: Data) -> Data {
var mutableData: Data = Data()
mutableData.append(self)
mutableData.append(other)
return mutableData
}
func appending(_ other: [UInt8]) -> Data {
var mutableData: Data = Data()
mutableData.append(self)
mutableData.append(contentsOf: other)
return mutableData
}
}