Signal-iOS/SignalServiceKit/Util/StreamTransform/Input/InputStream+SSK.swift
2026-04-29 15:15:14 -05:00

21 lines
550 B
Swift

//
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
import Foundation
extension InputStream {
public func read(maxLength len: Int) throws -> Data {
if len == 0 {
return Data()
}
var buffer = Data(count: len)
let bytesRead = buffer.withUnsafeMutableBytes { self.read($0.baseAddress!, maxLength: len) }
guard bytesRead >= 0 else {
throw OWSGenericError("couldn't read from input stream")
}
return buffer.prefix(bytesRead)
}
}