Feature request: Make Socket conform to Sequence
Open
@adam-rocska is already working on this.
Since May 19, 2026.
- Dominant language
- Swift
- Stars
- 1.4k
- Forks
- 193
- PR merge metrics
- No merged PRs in 30d
Description
E.g. a rough implementation might look like so:
extension Socket: Sequence {
public func makeIterator() -> AnyIterator<UInt8> {
var iterator: Data.Iterator? = nil
return AnyIterator {
if let next = iterator?.next() {
return next
}
do {
var buffer = Data(capacity: self.readBufferSize)
let _ = try self.read(into: &buffer)
iterator = buffer.makeIterator()
} catch let error {
assertionFailure(error.localizedDescription)
return nil
}
return iterator?.next()
}
}
}
This would allow data from the packet to be read as a continuous stream of bytes, even across multiple internal socket.read calls.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.