|
@@ -16,7 +16,7 @@ public protocol Updatable {
|
|
|
/// - parameter bytes: Bytes to process
|
|
|
/// - parameter isLast: (Optional) Given chunk is the last one. No more updates after this call.
|
|
|
/// - returns: Processed data or empty array.
|
|
|
- mutating func update<T: Sequence>(withBytes bytes: T, isLast: Bool) throws -> Array<UInt8> where T.Iterator.Element == UInt8
|
|
|
+ mutating func update<T: Collection>(withBytes bytes: T, isLast: Bool) throws -> Array<UInt8> where T.Iterator.Element == UInt8
|
|
|
|
|
|
/// Update given bytes in chunks.
|
|
|
///
|
|
@@ -24,30 +24,30 @@ public protocol Updatable {
|
|
|
/// - parameter isLast: (Optional) Given chunk is the last one. No more updates after this call.
|
|
|
/// - parameter output: Resulting data
|
|
|
/// - returns: Processed data or empty array.
|
|
|
- mutating func update<T: Sequence>(withBytes bytes: T, isLast: Bool, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8
|
|
|
+ mutating func update<T: Collection>(withBytes bytes: T, isLast: Bool, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8
|
|
|
|
|
|
/// Finish updates. This may apply padding.
|
|
|
/// - parameter bytes: Bytes to process
|
|
|
/// - returns: Processed data.
|
|
|
- mutating func finish<T: Sequence>(withBytes bytes: T) throws -> Array<UInt8> where T.Iterator.Element == UInt8
|
|
|
+ mutating func finish<T: Collection>(withBytes bytes: T) throws -> Array<UInt8> where T.Iterator.Element == UInt8
|
|
|
|
|
|
/// Finish updates. This may apply padding.
|
|
|
/// - parameter bytes: Bytes to process
|
|
|
/// - parameter output: Resulting data
|
|
|
/// - returns: Processed data.
|
|
|
- mutating func finish<T: Sequence>(withBytes bytes: T, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8
|
|
|
+ mutating func finish<T: Collection>(withBytes bytes: T, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8
|
|
|
}
|
|
|
|
|
|
extension Updatable {
|
|
|
|
|
|
- mutating public func update<T: Sequence>(withBytes bytes: T, isLast: Bool = false, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8 {
|
|
|
+ mutating public func update<T: Collection>(withBytes bytes: T, isLast: Bool = false, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8 {
|
|
|
let processed = try self.update(withBytes: bytes, isLast: isLast)
|
|
|
if (!processed.isEmpty) {
|
|
|
output(processed)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- mutating public func finish<T: Sequence>(withBytes bytes: T) throws -> Array<UInt8> where T.Iterator.Element == UInt8 {
|
|
|
+ mutating public func finish<T: Collection>(withBytes bytes: T) throws -> Array<UInt8> where T.Iterator.Element == UInt8 {
|
|
|
return try self.update(withBytes: bytes, isLast: true)
|
|
|
}
|
|
|
|
|
@@ -55,7 +55,7 @@ extension Updatable {
|
|
|
return try self.update(withBytes: [], isLast: true)
|
|
|
}
|
|
|
|
|
|
- mutating public func finish<T: Sequence>(withBytes bytes: T, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8 {
|
|
|
+ mutating public func finish<T: Collection>(withBytes bytes: T, output: (Array<UInt8>) -> Void) throws where T.Iterator.Element == UInt8 {
|
|
|
let processed = try self.update(withBytes: bytes, isLast: true)
|
|
|
if (!processed.isEmpty) {
|
|
|
output(processed)
|