in Sources/TSFCAS/Implementations/Blake3DataID.swift [15:34]
init(blake3hash buffer: LLBByteBuffer, refs: [LLBDataID] = []) {
var hasher = blake3_hasher()
blake3_hasher_init(&hasher)
for ref in refs {
ref.bytes.withUnsafeBytes { content in
blake3_hasher_update(&hasher, content.baseAddress, content.count)
}
}
buffer.withUnsafeReadableBytes { data in
blake3_hasher_update(&hasher, data.baseAddress, data.count)
}
let hash = [UInt8](unsafeUninitializedCapacity: Int(BLAKE3_OUT_LEN)) { (hash, len) in
len = Int(BLAKE3_OUT_LEN)
blake3_hasher_finalize(&hasher, hash.baseAddress, len)
}
self.init(directHash: hash)
}