class MyClass {
var value: Int = 0 {
didSet { print("Set to \(self.value)") }
}
}
let sequence = AsyncStream<Int> { continuation in
continuation.yield(1)
continuation.yield(2)
continuation.yield(3)
continuation.finish()
}
let object = MyClass()
sequence.assign(to: \.value, on: object)
// Prints:
// Set to 1
// Set to 2
// Set to 3
First
let sequence = AsyncStream<Int> { continuation in
continuation.yield(1)
continuation.yield(2)
continuation.yield(3)
continuation.finish()
}
print(await sequence.first())
// Prints:
// 1
Last
let sequence = AsyncStream<Int> { continuation in
continuation.yield(1)
continuation.yield(2)
continuation.yield(3)
continuation.finish()
}
print(await sequence.last())
// Prints:
// 3
Collect
let sequence = AsyncStream<Int> { continuation in
continuation.yield(1)
continuation.yield(2)
continuation.yield(3)
continuation.finish()
}
print(await sequence.collect())
// Prints:
// [1, 2, 3]
Asynchrone
Extensions and additions for Swift’s async sequence.
Requirements
Installation
Swift Package Manager
In Xcode:
Project
.Package Dependencies
.+
.https://github.com/reddavis/Asynchrone
.Asynchrone
to your app target.Documentation
Documentation can be found here.
Overview
AsyncSequence
Extensions
Assign
First
Last
Collect
Sink
Sink with completion
AnyAsyncSequenceable
AnyThrowingAsyncSequenceable
CatchErrorAsyncSequence
ChainAsyncSequence
CombineLatestAsyncSequence
CombineLatest3AsyncSequence
CurrentElementAsyncSequence
DebounceAsyncSequence
DelayAsyncSequence
Empty
Fail
Just
MergeAsyncSequence
Merge3AsyncSequence
NotificationCenterAsyncSequence
PassthroughAsyncSequence
RemoveDuplicatesAsyncSequence
ReplaceErrorAsyncSequence
SequenceAsyncSequence
SharedAsyncSequence
ThrottleAsyncSequence
ThrowingPassthroughAsyncSequence
TimerAsyncSequence
ZipAsyncSequence
Zip3AsyncSequence
Other libraries