Refactoring

This commit is contained in:
Ali
2021-08-03 12:23:13 +02:00
parent 1a0dc56953
commit 7e6eb2b3bd
46 changed files with 702 additions and 470 deletions

View File

@@ -589,7 +589,7 @@ public final class PostboxEncoder {
let innerEncoder = _AdaptedPostboxEncoder(typeHash: typeHash)
try! value.encode(to: innerEncoder)
let (data, valueType) = innerEncoder.makeData()
let (data, valueType) = innerEncoder.makeData(addHeader: true)
self.encodeInnerObjectData(data, valueType: valueType, forKey: key)
}
@@ -1612,6 +1612,29 @@ public final class PostboxDecoder {
return nil
}
}
static func parseDataRaw(data: Data) -> Data? {
return data.withUnsafeBytes { bytes -> Data? in
guard let baseAddress = bytes.baseAddress else {
return nil
}
if bytes.count < 4 {
return nil
}
var length: Int32 = 0
memcpy(&length, baseAddress, 4)
if length < 0 || length != (bytes.count - 4) {
return nil
}
if length == 0 {
return Data()
}
return Data(bytes: baseAddress.advanced(by: 4), count: Int(length))
}
}
public func decodeDataForKey(_ key: String) -> Data? {
if PostboxDecoder.positionOnKey(self.buffer.memory, offset: &self.offset, maxOffset: self.buffer.length, length: self.buffer.length, key: key, valueType: .Bytes) {