From 27d0f57fa2e4da15bd2811dfab509d68422ea594 Mon Sep 17 00:00:00 2001 From: Red Davis Date: Tue, 17 May 2022 06:29:59 +0100 Subject: [PATCH] Update documentation (#29) --- .documentation/Actors.html | 30 +- .../Actors/CurrentElementAsyncSequence.html | 32 +- .documentation/Classes.html | 16 +- .../Classes/TimerAsyncSequence.html | 16 +- .documentation/Enums.html | 14 +- .../Enums/AsyncSequenceCompletion.html | 14 +- .documentation/Extensions.html | 54 ++- .documentation/Extensions/AsyncSequence.html | 170 ++++++- .documentation/Extensions/AsyncStream.html | 16 +- .../Extensions/AsyncStream/Continuation.html | 14 +- .../Extensions/AsyncThrowingStream.html | 16 +- .../AsyncThrowingStream/Continuation.html | 14 +- .documentation/Extensions/Sequence.html | 227 ++++++++++ .documentation/Extensions/Task.html | 16 +- .documentation/Structs.html | 206 ++++++++- .../Structs/AnyAsyncSequenceable.html | 16 +- .../Structs/AnyThrowingAsyncSequenceable.html | 16 +- .../Structs/ChainAsyncSequence.html | 421 ++++++++++++++++++ .../Structs/CombineLatest3AsyncSequence.html | 18 +- .../Structs/CombineLatestAsyncSequence.html | 18 +- .../Structs/DebounceAsyncSequence.html | 22 +- .../Structs/DelayAsyncSequence.html | 18 +- .documentation/Structs/Empty.html | 16 +- .documentation/Structs/Fail.html | 18 +- .documentation/Structs/Just.html | 18 +- .../Structs/Merge3AsyncSequence.html | 18 +- .../Structs/MergeAsyncSequence.html | 18 +- .../Structs/PassthroughAsyncSequence.html | 16 +- .../RemoveDuplicatesAsyncSequence.html | 18 +- .../Structs/ReplaceErrorAsyncSequence.html | 18 +- .../Structs/SequenceAsyncSequence.html | 331 ++++++++++++++ .../SequenceAsyncSequenceIterator.html | 270 +++++++++++ .../Structs/SharedAsyncSequence.html | 28 +- .../Structs/ThrottleAsyncSequence.html | 22 +- .../ThrowingPassthroughAsyncSequence.html | 16 +- .documentation/Structs/Zip3AsyncSequence.html | 18 +- .documentation/Structs/ZipAsyncSequence.html | 18 +- .../Contents/Resources/Documents/Actors.html | 30 +- .../Actors/CurrentElementAsyncSequence.html | 32 +- .../Contents/Resources/Documents/Classes.html | 16 +- .../Documents/Classes/TimerAsyncSequence.html | 16 +- .../Contents/Resources/Documents/Enums.html | 14 +- .../Enums/AsyncSequenceCompletion.html | 14 +- .../Resources/Documents/Extensions.html | 54 ++- .../Documents/Extensions/AsyncSequence.html | 170 ++++++- .../Documents/Extensions/AsyncStream.html | 16 +- .../Extensions/AsyncStream/Continuation.html | 14 +- .../Extensions/AsyncThrowingStream.html | 16 +- .../AsyncThrowingStream/Continuation.html | 14 +- .../Documents/Extensions/Sequence.html | 227 ++++++++++ .../Resources/Documents/Extensions/Task.html | 16 +- .../Contents/Resources/Documents/Structs.html | 206 ++++++++- .../Structs/AnyAsyncSequenceable.html | 16 +- .../Structs/AnyThrowingAsyncSequenceable.html | 16 +- .../Documents/Structs/ChainAsyncSequence.html | 421 ++++++++++++++++++ .../Structs/CombineLatest3AsyncSequence.html | 18 +- .../Structs/CombineLatestAsyncSequence.html | 18 +- .../Structs/DebounceAsyncSequence.html | 22 +- .../Documents/Structs/DelayAsyncSequence.html | 18 +- .../Resources/Documents/Structs/Empty.html | 16 +- .../Resources/Documents/Structs/Fail.html | 18 +- .../Resources/Documents/Structs/Just.html | 18 +- .../Structs/Merge3AsyncSequence.html | 18 +- .../Documents/Structs/MergeAsyncSequence.html | 18 +- .../Structs/PassthroughAsyncSequence.html | 16 +- .../RemoveDuplicatesAsyncSequence.html | 18 +- .../Structs/ReplaceErrorAsyncSequence.html | 18 +- .../Structs/SequenceAsyncSequence.html | 331 ++++++++++++++ .../SequenceAsyncSequenceIterator.html | 270 +++++++++++ .../Structs/SharedAsyncSequence.html | 28 +- .../Structs/ThrottleAsyncSequence.html | 22 +- .../ThrowingPassthroughAsyncSequence.html | 16 +- .../Documents/Structs/Zip3AsyncSequence.html | 18 +- .../Documents/Structs/ZipAsyncSequence.html | 18 +- .../Contents/Resources/Documents/badge.svg | 16 +- .../Contents/Resources/Documents/index.html | 127 ++++-- .../Contents/Resources/Documents/search.json | 2 +- .../Resources/Documents/undocumented.json | 8 +- .../.docset/Contents/Resources/docSet.dsidx | Bin 53248 -> 57344 bytes .documentation/docsets/.tgz | Bin 115931 -> 120855 bytes .documentation/index.html | 127 ++++-- .documentation/search.json | 2 +- .documentation/undocumented.json | 2 +- 83 files changed, 4374 insertions(+), 364 deletions(-) create mode 100644 .documentation/Extensions/Sequence.html create mode 100644 .documentation/Structs/ChainAsyncSequence.html create mode 100644 .documentation/Structs/SequenceAsyncSequence.html create mode 100644 .documentation/Structs/SequenceAsyncSequenceIterator.html create mode 100644 .documentation/docsets/.docset/Contents/Resources/Documents/Extensions/Sequence.html create mode 100644 .documentation/docsets/.docset/Contents/Resources/Documents/Structs/ChainAsyncSequence.html create mode 100644 .documentation/docsets/.docset/Contents/Resources/Documents/Structs/SequenceAsyncSequence.html create mode 100644 .documentation/docsets/.docset/Contents/Resources/Documents/Structs/SequenceAsyncSequenceIterator.html diff --git a/.documentation/Actors.html b/.documentation/Actors.html index e5f17ff..692e01a 100644 --- a/.documentation/Actors.html +++ b/.documentation/Actors.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -171,15 +183,15 @@

Actors

A async sequence that wraps a single value and emits a new element whenever the element changes.

let sequence = CurrentElementAsyncSequence(0)
-print(await sequence.element)
+print(await sequence.element)
 
-await stream.yield(1)
-print(await sequence.element)
+await stream.yield(1)
+print(await sequence.element)
 
-await stream.yield(2)
-await stream.yield(3)
-await stream.yield(4)
-print(await sequence.element)
+await stream.yield(2)
+await stream.yield(3)
+await stream.yield(4)
+print(await sequence.element)
 
 // Prints:
 // 0
@@ -193,7 +205,7 @@ 

Actors

Declaration

Swift

-
public actor CurrentElementAsyncSequence<Element> : AsyncSequence
+
public actor CurrentElementAsyncSequence<Element> : AsyncSequence
@@ -205,7 +217,7 @@

Declaration

diff --git a/.documentation/Actors/CurrentElementAsyncSequence.html b/.documentation/Actors/CurrentElementAsyncSequence.html index 90cccb5..ffc1d4f 100644 --- a/.documentation/Actors/CurrentElementAsyncSequence.html +++ b/.documentation/Actors/CurrentElementAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -153,21 +165,21 @@

CurrentElementAsyncSequence

-
public actor CurrentElementAsyncSequence<Element> : AsyncSequence
+
public actor CurrentElementAsyncSequence<Element> : AsyncSequence

A async sequence that wraps a single value and emits a new element whenever the element changes.

let sequence = CurrentElementAsyncSequence(0)
-print(await sequence.element)
+print(await sequence.element)
 
-await stream.yield(1)
-print(await sequence.element)
+await stream.yield(1)
+print(await sequence.element)
 
-await stream.yield(2)
-await stream.yield(3)
-await stream.yield(4)
-print(await sequence.element)
+await stream.yield(2)
+await stream.yield(3)
+await stream.yield(4)
+print(await sequence.element)
 
 // Prints:
 // 0
@@ -298,7 +310,7 @@ 

AsyncSequence

Declaration

Swift

-
nonisolated public func makeAsyncIterator() -> AsyncStream<Element>.Iterator
+
nonisolated public func makeAsyncIterator() -> AsyncStream<Element>.Iterator
@@ -453,7 +465,7 @@

Parameters

diff --git a/.documentation/Classes.html b/.documentation/Classes.html index 2da3109..4a4c69f 100644 --- a/.documentation/Classes.html +++ b/.documentation/Classes.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -173,7 +185,7 @@

Classes

let sequence = TimerAsyncSequence(interval: 1)
 
 let start = Date.now
-for element in await sequence {
+for element in await sequence {
     print(element)
 }
 
@@ -201,7 +213,7 @@ 

Declaration

diff --git a/.documentation/Classes/TimerAsyncSequence.html b/.documentation/Classes/TimerAsyncSequence.html index 534ae30..f2e6f7c 100644 --- a/.documentation/Classes/TimerAsyncSequence.html +++ b/.documentation/Classes/TimerAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -161,7 +173,7 @@

TimerAsyncSequence

let sequence = TimerAsyncSequence(interval: 1)
 
 let start = Date.now
-for element in await sequence {
+for element in await sequence {
     print(element)
 }
 
@@ -350,7 +362,7 @@ 

Return Value

diff --git a/.documentation/Enums.html b/.documentation/Enums.html index 20624de..bfcf14f 100644 --- a/.documentation/Enums.html +++ b/.documentation/Enums.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -189,7 +201,7 @@

Declaration

diff --git a/.documentation/Enums/AsyncSequenceCompletion.html b/.documentation/Enums/AsyncSequenceCompletion.html index eed8ab4..1eb3ea2 100644 --- a/.documentation/Enums/AsyncSequenceCompletion.html +++ b/.documentation/Enums/AsyncSequenceCompletion.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -223,7 +235,7 @@

Declaration

diff --git a/.documentation/Extensions.html b/.documentation/Extensions.html index ff32b5c..4321d63 100644 --- a/.documentation/Extensions.html +++ b/.documentation/Extensions.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -267,10 +279,50 @@

Declaration

+
+
+ + +
+ +

Sequence +

+
+
+
    +
  • +
    + + + + Sequence + +
    +
    +
    +
    +
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public extension Sequence
    + +
    +
    +
    +
    +
  • +
+
diff --git a/.documentation/Extensions/AsyncSequence.html b/.documentation/Extensions/AsyncSequence.html index 611ebb3..e585d7f 100644 --- a/.documentation/Extensions/AsyncSequence.html +++ b/.documentation/Extensions/AsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -275,7 +287,7 @@

Return Value

Declaration

Swift

-
public func first() async rethrows -> Element?
+
public func first() async rethrows -> Element?
@@ -300,14 +312,14 @@

Declaration

Collect elements from a sequence.

// Collect all elements.
-var values = await self.sequence.collect()
+var values = await self.sequence.collect()
 print(values)
 
 // Prints:
 // [1, 2, 3]
 
 // Collect only 2 elements.
-values = await self.sequence.collect(2)
+values = await self.sequence.collect(2)
 print(values)
 
 // Prints:
@@ -319,7 +331,7 @@ 

Declaration

Declaration

Swift

-
public func collect(_ numberOfElements: Int? = .none) async rethrows -> [Element]
+
public func collect(_ numberOfElements: Int? = .none) async rethrows -> [Element]
@@ -387,7 +399,7 @@

Declaration

Swift

@discardableResult
-public func sink(_ receiveValue: @escaping (Element) async -> Void) -> Task<Void, Error>
+public func sink(_ receiveValue: @escaping (Element) async -> Void) -> Task<Void, Error>
@@ -458,8 +470,8 @@

Declaration

Swift

@discardableResult
 public func sink(
-    receiveValue: @escaping (Element) async -> Void,
-    receiveCompletion: @escaping (AsyncSequenceCompletion<Error>) async -> Void
+    receiveValue: @escaping (Element) async -> Void,
+    receiveCompletion: @escaping (AsyncSequenceCompletion<Error>) async -> Void
 ) -> Task<Void, Never>
@@ -585,6 +597,120 @@

Return Value

+
+
+ + +
+ +

Chain +

+
+
+
    +
  • +
    + + + + chain(with:) + +
    +
    +
    +
    +
    +
    +

    An asynchronous sequence that chains two async sequences.

    + +

    The combined sequence first emits the all the values from the first sequence +and then emits all values from the second.

    +
    let sequenceA = AsyncStream<Int> { continuation in
    +    continuation.yield(1)
    +    continuation.yield(2)
    +    continuation.yield(3)
    +    continuation.finish()
    +}
    +
    +let sequenceB = AsyncStream<Int> { continuation in
    +    continuation.yield(4)
    +    continuation.yield(5)
    +    continuation.yield(6)
    +    continuation.finish()
    +}
    +
    +let sequenceC = AsyncStream<Int> { continuation in
    +    continuation.yield(7)
    +    continuation.yield(8)
    +    continuation.yield(9)
    +    continuation.finish()
    +}
    +
    +for await value in sequenceA.chain(with: sequenceB).chain(with: sequenceC) {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +// 4
    +// 5
    +// 6
    +// 7
    +// 8
    +// 9
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func chain<P>(with sequence: P) -> ChainAsyncSequence<Self, P> where P : AsyncSequence, Self.Element == P.Element
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + lhs + + +
    +

    The first async sequence to iterate through.

    +
    +
    + + rhs + + +
    +

    The second async sequence to iterate through.

    +
    +
    +
    +
    +

    Return Value

    +

    A async sequence chains the two sequences.

    +
    +
    +
    +
  • +
+
@@ -638,7 +764,7 @@

Combine latest continuation.finish() } -for await value in streamA.combineLatest(streamB, streamC) { +for await value in streamA.combineLatest(streamB, streamC) { print(value) } @@ -734,7 +860,7 @@

Return Value

continuation.finish() } -for await value in self.streamA.combineLatest(self.streamB) { +for await value in self.streamA.combineLatest(self.streamB) { print(value) } @@ -816,9 +942,9 @@

Debounce or high-volume async sequences where you need to reduce the number of elements emitted to a rate you specify.

let stream = AsyncStream<Int> { continuation in
     continuation.yield(0)
-    try? await Task.sleep(nanoseconds: 200_000_000)
+    try? await Task.sleep(nanoseconds: 200_000_000)
     continuation.yield(1)
-    try? await Task.sleep(nanoseconds: 200_000_000)
+    try? await Task.sleep(nanoseconds: 200_000_000)
     continuation.yield(2)
     continuation.yield(3)
     continuation.yield(4)
@@ -826,7 +952,7 @@ 

Debounce continuation.finish() } -for element in try await self.stream.debounce(for: 0.1) { +for element in try await self.stream.debounce(for: 0.1) { print(element) } @@ -918,7 +1044,7 @@

Delay } let start = Date.now -for element in try await self.stream.delay(for: 0.5) { +for element in try await self.stream.delay(for: 0.5) { print("\(element) - \(Date.now.timeIntervalSince(start))") } @@ -1020,7 +1146,7 @@

Merge continuation.finish() } -for await value in streamA.merge(with: streamB, streamC) { +for await value in streamA.merge(with: streamB, streamC) { print(value) } @@ -1114,7 +1240,7 @@

Return Value

continuation.finish() } -for await value in streamA.merge(with: streamB) { +for await value in streamA.merge(with: streamB) { print(value) } @@ -1199,7 +1325,7 @@

Replace error ) .replaceError(with: 0) -for await value in stream { +for await value in stream { print(value) } @@ -1315,9 +1441,9 @@

Throttle interval you specify. Other elements received within the throttling interval aren’t emitted.

let stream = AsyncStream<Int> { continuation in
     continuation.yield(0)
-    try? await Task.sleep(nanoseconds: 100_000_000)
+    try? await Task.sleep(nanoseconds: 100_000_000)
     continuation.yield(1)
-    try? await Task.sleep(nanoseconds: 100_000_000)
+    try? await Task.sleep(nanoseconds: 100_000_000)
     continuation.yield(2)
     continuation.yield(3)
     continuation.yield(4)
@@ -1325,7 +1451,7 @@ 

Throttle continuation.finish() } -for element in try await self.stream.throttle(for: 0.05, latest: true) { +for element in try await self.stream.throttle(for: 0.05, latest: true) { print(element) } @@ -1436,7 +1562,7 @@

Zip continuation.finish() } -for await value in streamA.zip(streamB, streamC) { +for await value in streamA.zip(streamB, streamC) { print(value) } @@ -1529,7 +1655,7 @@

Return Value

continuation.finish() } -for await value in streamA.zip(streamB) { +for await value in streamA.zip(streamB) { print(value) } @@ -1677,7 +1803,7 @@

Return Value

diff --git a/.documentation/Extensions/AsyncStream.html b/.documentation/Extensions/AsyncStream.html index d19d271..4cdcb5d 100644 --- a/.documentation/Extensions/AsyncStream.html +++ b/.documentation/Extensions/AsyncStream.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -203,7 +215,7 @@

Declaration

public init(
     _ elementType: Element.Type = Element.self,
     bufferingPolicy limit: AsyncStream<Element>.Continuation.BufferingPolicy = .unbounded,
-    _ build: @escaping (AsyncStream<Element>.Continuation) async -> Void
+    _ build: @escaping (AsyncStream<Element>.Continuation) async -> Void
 )

@@ -301,7 +313,7 @@

Declaration

diff --git a/.documentation/Extensions/AsyncStream/Continuation.html b/.documentation/Extensions/AsyncStream/Continuation.html index 7bf0c52..5fa591b 100644 --- a/.documentation/Extensions/AsyncStream/Continuation.html +++ b/.documentation/Extensions/AsyncStream/Continuation.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -213,7 +225,7 @@

Parameters

diff --git a/.documentation/Extensions/AsyncThrowingStream.html b/.documentation/Extensions/AsyncThrowingStream.html index a08bb66..bcedac5 100644 --- a/.documentation/Extensions/AsyncThrowingStream.html +++ b/.documentation/Extensions/AsyncThrowingStream.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -203,7 +215,7 @@

Declaration

public init(
     _ elementType: Element.Type = Element.self,
     bufferingPolicy limit: AsyncThrowingStream<Element, Failure>.Continuation.BufferingPolicy = .unbounded,
-    _ build: @escaping (AsyncThrowingStream<Element, Failure>.Continuation) async -> Void
+    _ build: @escaping (AsyncThrowingStream<Element, Failure>.Continuation) async -> Void
 ) where Failure == Error
@@ -301,7 +313,7 @@

Declaration

diff --git a/.documentation/Extensions/AsyncThrowingStream/Continuation.html b/.documentation/Extensions/AsyncThrowingStream/Continuation.html index ccb8be7..cd4e86e 100644 --- a/.documentation/Extensions/AsyncThrowingStream/Continuation.html +++ b/.documentation/Extensions/AsyncThrowingStream/Continuation.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -213,7 +225,7 @@

Parameters

diff --git a/.documentation/Extensions/Sequence.html b/.documentation/Extensions/Sequence.html new file mode 100644 index 0000000..4176a17 --- /dev/null +++ b/.documentation/Extensions/Sequence.html @@ -0,0 +1,227 @@ + + + + Sequence Extension Reference + + + + + + + + + + + + + +
+
+

Docs (100% documented)

+
+
+ +
+
+
+
+
+ +
+
+ +
+
+
+

Sequence

+
+
+ +
public extension Sequence
+ +
+
+ +
+
+
+
    +
  • +
    + + + + async + +
    +
    +
    +
    +
    +
    +

    An async sequence that contains all the elements of +the current sequence.

    +
    let sequence = [0, 1, 2, 3].async
    +
    +for await value in sequence {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var async: SequenceAsyncSequence<Self> { get }
    + +
    +
    +
    +
    +
  • +
+
+
+
+ +
+
+ + diff --git a/.documentation/Extensions/Task.html b/.documentation/Extensions/Task.html index 1f0a041..2b3537a 100644 --- a/.documentation/Extensions/Task.html +++ b/.documentation/Extensions/Task.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -197,7 +209,7 @@

Available where Success == Nev

Declaration

Swift

-
public static func sleep(seconds duration: TimeInterval) async throws
+
public static func sleep(seconds duration: TimeInterval) async throws
@@ -228,7 +240,7 @@

Parameters

diff --git a/.documentation/Structs.html b/.documentation/Structs.html index b4d91fe..049f8f2 100644 --- a/.documentation/Structs.html +++ b/.documentation/Structs.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -218,6 +230,74 @@

Declaration

+
  • +
    + + + + ChainAsyncSequence + +
    +
    +
    +
    +
    +
    +

    An asynchronous sequence that chains two async sequences.

    + +

    The combined sequence first emits the all the values from the first sequence +and then emits all values from the second.

    +
    let sequenceA = AsyncStream<Int> { continuation in
    +    continuation.yield(1)
    +    continuation.yield(2)
    +    continuation.yield(3)
    +    continuation.finish()
    +}
    +
    +let sequenceB = AsyncStream<Int> { continuation in
    +    continuation.yield(4)
    +    continuation.yield(5)
    +    continuation.yield(6)
    +    continuation.finish()
    +}
    +
    +let sequenceC = AsyncStream<Int> { continuation in
    +    continuation.yield(7)
    +    continuation.yield(8)
    +    continuation.yield(9)
    +    continuation.finish()
    +}
    +
    +for await value in sequenceA <> sequenceB <> sequenceC {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +// 4
    +// 5
    +// 6
    +// 7
    +// 8
    +// 9
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct ChainAsyncSequence<P, Q> : AsyncSequence where P : AsyncSequence, Q : AsyncSequence, P.Element == Q.Element
    +
    extension ChainAsyncSequence: AsyncIteratorProtocol
    + +
    +
    +
    +
    +
  • @@ -260,7 +340,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.combineLatest(streamB, streamC) { +for await value in streamA.combineLatest(streamB, streamC) { print(value) } @@ -322,7 +402,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.combineLatest(streamB) { +for await value in streamA.combineLatest(streamB) { print(value) } @@ -368,9 +448,9 @@

    Declaration

    or high-volume async sequences where you need to reduce the number of elements emitted to a rate you specify.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -378,7 +458,7 @@ 

    Declaration

    continuation.finish() } -for element in try await self.stream.debounce(for: 0.1) { +for element in try await self.stream.debounce(for: 0.1) { print(element) } @@ -424,7 +504,7 @@

    Declaration

    } let start = Date.now -for element in try await self.stream.delay(for: 0.5) { +for element in try await self.stream.delay(for: 0.5) { print("\(element) - \(Date.now.timeIntervalSince(start))") } @@ -511,7 +591,7 @@

    Declaration

    let stream = Fail<Int, TestError>(error: TestError())
     
     do {
    -    for try await value in stream {
    +    for try await value in stream {
             print(value)
         }
     } catch {
    @@ -552,7 +632,7 @@ 

    Declaration

    An asynchronous sequence that only emits the provided value once.

    let stream = Just(1)
     
    -for await value in stream {
    +for await value in stream {
         print(value)
     }
     
    @@ -606,7 +686,7 @@ 

    Declaration

    continuation.finish() } -for await value in self.streamA.merge(with: self.streamB, self.streamC) { +for await value in self.streamA.merge(with: self.streamB, self.streamC) { print(value) } @@ -664,7 +744,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.merge(with: streamB) { +for await value in streamA.merge(with: streamB) { print(value) } @@ -714,7 +794,7 @@

    Declaration

    sequence.yield(2) sequence.finish() -for await value in sequence { +for await value in sequence { print(value) } @@ -760,7 +840,7 @@

    Declaration

    continuation.finish() } -for await value in stream.removeDuplicates() { +for await value in stream.removeDuplicates() { print(value) } @@ -803,7 +883,7 @@

    Declaration

    ) .replaceError(with: 0) -for await value in stream { +for await value in stream { print(value) } @@ -825,6 +905,86 @@

    Declaration

  • +
  • +
    + + + + SequenceAsyncSequence + +
    +
    +
    +
    +
    +
    +

    An async version of Sequence. Generally used to turn any Sequence into +it’s async counterpart.

    +
    let sequence = [0, 1, 2, 3].async
    +
    +for await value in sequence {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct SequenceAsyncSequence<P> : AsyncSequence where P : Sequence
    + +
    +
    +
    +
    +
  • + + +
    +
    + + +
    + +

    SequenceAsyncSequenceIterator +

    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct SequenceAsyncSequenceIterator<P> : AsyncIteratorProtocol where P : Sequence
      + +
      +
      +
      +
      +
    • @@ -855,16 +1015,16 @@

      Declaration

      .shared() Task { - let values = try await self.stream.collect() + let values = try await self.stream.collect() // ... } Task.detached { - let values = try await self.stream.collect() + let values = try await self.stream.collect() // ... } -let values = try await self.stream.collect() +let values = try await self.stream.collect() // ...

    @@ -901,9 +1061,9 @@

    Declaration

    interval you specify. Other elements received within the throttling interval aren’t emitted.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -911,7 +1071,7 @@ 

    Declaration

    continuation.finish() } -for element in try await self.stream.throttle(for: 0.05, latest: true) { +for element in try await self.stream.throttle(for: 0.05, latest: true) { print(element) } @@ -957,7 +1117,7 @@

    Declaration

    sequence.finish(throwing: TestError()) do { - for try await value in sequence { + for try await value in sequence { print(value) } } catch { @@ -1024,7 +1184,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.zip(streamB, streamC) { +for await value in streamA.zip(streamB, streamC) { print(value) } @@ -1081,7 +1241,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.zip(streamB) { +for await value in streamA.zip(streamB) { print(value) } @@ -1109,7 +1269,7 @@

    Declaration

    diff --git a/.documentation/Structs/AnyAsyncSequenceable.html b/.documentation/Structs/AnyAsyncSequenceable.html index 6f03d6c..d20e75a 100644 --- a/.documentation/Structs/AnyAsyncSequenceable.html +++ b/.documentation/Structs/AnyAsyncSequenceable.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -347,7 +359,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async -> Element?
    +
    public mutating func next() async -> Element?
    @@ -363,7 +375,7 @@

    Return Value

    diff --git a/.documentation/Structs/AnyThrowingAsyncSequenceable.html b/.documentation/Structs/AnyThrowingAsyncSequenceable.html index 2ccee6e..c6811f9 100644 --- a/.documentation/Structs/AnyThrowingAsyncSequenceable.html +++ b/.documentation/Structs/AnyThrowingAsyncSequenceable.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -347,7 +359,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -363,7 +375,7 @@

    Return Value

    diff --git a/.documentation/Structs/ChainAsyncSequence.html b/.documentation/Structs/ChainAsyncSequence.html new file mode 100644 index 0000000..6a9c1f5 --- /dev/null +++ b/.documentation/Structs/ChainAsyncSequence.html @@ -0,0 +1,421 @@ + + + + ChainAsyncSequence Structure Reference + + + + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    ChainAsyncSequence

    +
    +
    + +
    public struct ChainAsyncSequence<P, Q> : AsyncSequence where P : AsyncSequence, Q : AsyncSequence, P.Element == Q.Element
    +
    extension ChainAsyncSequence: AsyncIteratorProtocol
    + +
    +
    +

    An asynchronous sequence that chains two async sequences.

    + +

    The combined sequence first emits the all the values from the first sequence +and then emits all values from the second.

    +
    let sequenceA = AsyncStream<Int> { continuation in
    +    continuation.yield(1)
    +    continuation.yield(2)
    +    continuation.yield(3)
    +    continuation.finish()
    +}
    +
    +let sequenceB = AsyncStream<Int> { continuation in
    +    continuation.yield(4)
    +    continuation.yield(5)
    +    continuation.yield(6)
    +    continuation.finish()
    +}
    +
    +let sequenceC = AsyncStream<Int> { continuation in
    +    continuation.yield(7)
    +    continuation.yield(8)
    +    continuation.yield(9)
    +    continuation.finish()
    +}
    +
    +for await value in sequenceA <> sequenceB <> sequenceC {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +// 4
    +// 5
    +// 6
    +// 7
    +// 8
    +// 9
    +
    + +
    +
    +
    +
      +
    • +
      + + + + Element + +
      +
      +
      +
      +
      +
      +

      The kind of elements streamed.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public typealias Element = P.Element
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    Initialization +

    +
    +
    +
      +
    • +
      + + + + init(_:_:) + +
      +
      +
      +
      +
      +
      +

      Creates an async sequence that combines the two async sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(
      +    _ p: P,
      +    _ q: Q
      +)
      + +
      +
      +
      +

      Parameters

      + + + + + + + + + + + +
      + + p + + +
      +

      The first async sequence.

      +
      +
      + + q + + +
      +

      The second async sequence.

      +
      +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    AsyncSequence +

    +
    +
    +
      +
    • +
      + + + + makeAsyncIterator() + +
      +
      +
      +
      +
      +
      +

      Creates an async iterator that emits elements of this async sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public func makeAsyncIterator() -> ChainAsyncSequence<P, Q>
      + +
      +
      +
      +

      Return Value

      +

      An instance that conforms to AsyncIteratorProtocol.

      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    AsyncIteratorProtocol +

    +
    +
    +
      +
    • +
      + + + + next() + + + Asynchronous + +
      +
      +
      +
      +
      +
      +

      Produces the next element in the sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public mutating func next() async rethrows -> Element?
      + +
      +
      +
      +

      Return Value

      +

      The next element or nil if the end of the sequence is reached.

      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + diff --git a/.documentation/Structs/CombineLatest3AsyncSequence.html b/.documentation/Structs/CombineLatest3AsyncSequence.html index 82ce6e5..8119f94 100644 --- a/.documentation/Structs/CombineLatest3AsyncSequence.html +++ b/.documentation/Structs/CombineLatest3AsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -187,7 +199,7 @@

    CombineLatest3AsyncSequence

    continuation.finish() } -for await value in streamA.combineLatest(streamB, streamC) { +for await value in streamA.combineLatest(streamB, streamC) { print(value) } @@ -404,7 +416,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -420,7 +432,7 @@

    Return Value

    diff --git a/.documentation/Structs/CombineLatestAsyncSequence.html b/.documentation/Structs/CombineLatestAsyncSequence.html index 88f974a..66bed72 100644 --- a/.documentation/Structs/CombineLatestAsyncSequence.html +++ b/.documentation/Structs/CombineLatestAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -181,7 +193,7 @@

    CombineLatestAsyncSequence

    continuation.finish() } -for await value in streamA.combineLatest(streamB) { +for await value in streamA.combineLatest(streamB) { print(value) } @@ -385,7 +397,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -401,7 +413,7 @@

    Return Value

    diff --git a/.documentation/Structs/DebounceAsyncSequence.html b/.documentation/Structs/DebounceAsyncSequence.html index 98ff51e..df54ff7 100644 --- a/.documentation/Structs/DebounceAsyncSequence.html +++ b/.documentation/Structs/DebounceAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -165,9 +177,9 @@

    DebounceAsyncSequence

    or high-volume async sequences where you need to reduce the number of elements emitted to a rate you specify.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -175,7 +187,7 @@ 

    DebounceAsyncSequence

    continuation.finish() } -for element in try await self.stream.debounce(for: 0.1) { +for element in try await self.stream.debounce(for: 0.1) { print(element) } @@ -370,7 +382,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -386,7 +398,7 @@

    Return Value

    diff --git a/.documentation/Structs/DelayAsyncSequence.html b/.documentation/Structs/DelayAsyncSequence.html index 02c7343..efd74dc 100644 --- a/.documentation/Structs/DelayAsyncSequence.html +++ b/.documentation/Structs/DelayAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -167,7 +179,7 @@

    DelayAsyncSequence

    } let start = Date.now -for element in try await self.stream.delay(for: 0.5) { +for element in try await self.stream.delay(for: 0.5) { print("\(element) - \(Date.now.timeIntervalSince(start))") } @@ -362,7 +374,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -378,7 +390,7 @@

    Return Value

    diff --git a/.documentation/Structs/Empty.html b/.documentation/Structs/Empty.html index 3f99eb6..d76ec4b 100644 --- a/.documentation/Structs/Empty.html +++ b/.documentation/Structs/Empty.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -317,7 +329,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async -> Element?
    +
    public mutating func next() async -> Element?
    @@ -333,7 +345,7 @@

    Return Value

    diff --git a/.documentation/Structs/Fail.html b/.documentation/Structs/Fail.html index 1632ed6..633a05b 100644 --- a/.documentation/Structs/Fail.html +++ b/.documentation/Structs/Fail.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -164,7 +176,7 @@

    Fail

    let stream = Fail<Int, TestError>(error: TestError())
     
     do {
    -    for try await value in stream {
    +    for try await value in stream {
             print(value)
         }
     } catch {
    @@ -314,7 +326,7 @@ 

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -330,7 +342,7 @@

    Return Value

    diff --git a/.documentation/Structs/Just.html b/.documentation/Structs/Just.html index ed52367..f256d7a 100644 --- a/.documentation/Structs/Just.html +++ b/.documentation/Structs/Just.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -161,7 +173,7 @@

    Just

    An asynchronous sequence that only emits the provided value once.

    let stream = Just(1)
     
    -for await value in stream {
    +for await value in stream {
         print(value)
     }
     
    @@ -308,7 +320,7 @@ 

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async -> Element?
    +
    public mutating func next() async -> Element?
    @@ -324,7 +336,7 @@

    Return Value

    diff --git a/.documentation/Structs/Merge3AsyncSequence.html b/.documentation/Structs/Merge3AsyncSequence.html index b7f3c63..0d79699 100644 --- a/.documentation/Structs/Merge3AsyncSequence.html +++ b/.documentation/Structs/Merge3AsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -177,7 +189,7 @@

    Merge3AsyncSequence

    continuation.finish() } -for await value in self.streamA.merge(with: self.streamB, self.streamC) { +for await value in self.streamA.merge(with: self.streamB, self.streamC) { print(value) } @@ -380,7 +392,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -396,7 +408,7 @@

    Return Value

    diff --git a/.documentation/Structs/MergeAsyncSequence.html b/.documentation/Structs/MergeAsyncSequence.html index 9b93e24..19d83b4 100644 --- a/.documentation/Structs/MergeAsyncSequence.html +++ b/.documentation/Structs/MergeAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -178,7 +190,7 @@

    MergeAsyncSequence

    continuation.finish() } -for await value in streamA.merge(with: streamB) { +for await value in streamA.merge(with: streamB) { print(value) } @@ -385,7 +397,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -401,7 +413,7 @@

    Return Value

    diff --git a/.documentation/Structs/PassthroughAsyncSequence.html b/.documentation/Structs/PassthroughAsyncSequence.html index cc1792b..6aad9c7 100644 --- a/.documentation/Structs/PassthroughAsyncSequence.html +++ b/.documentation/Structs/PassthroughAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -164,7 +176,7 @@

    PassthroughAsyncSequence

    sequence.yield(2) sequence.finish() -for await value in sequence { +for await value in sequence { print(value) } @@ -401,7 +413,7 @@

    Parameters

    diff --git a/.documentation/Structs/RemoveDuplicatesAsyncSequence.html b/.documentation/Structs/RemoveDuplicatesAsyncSequence.html index 5a3ae22..8ed4c06 100644 --- a/.documentation/Structs/RemoveDuplicatesAsyncSequence.html +++ b/.documentation/Structs/RemoveDuplicatesAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -168,7 +180,7 @@

    RemoveDuplicatesAsyncSequence

    continuation.finish() } -for await value in stream.removeDuplicates() { +for await value in stream.removeDuplicates() { print(value) } @@ -398,7 +410,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -414,7 +426,7 @@

    Return Value

    diff --git a/.documentation/Structs/ReplaceErrorAsyncSequence.html b/.documentation/Structs/ReplaceErrorAsyncSequence.html index d29cd08..fbcf21a 100644 --- a/.documentation/Structs/ReplaceErrorAsyncSequence.html +++ b/.documentation/Structs/ReplaceErrorAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -164,7 +176,7 @@

    ReplaceErrorAsyncSequence

    ) .replaceError(with: 0) -for await value in stream { +for await value in stream { print(value) } @@ -354,7 +366,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async -> Element?
    +
    public mutating func next() async -> Element?
    @@ -370,7 +382,7 @@

    Return Value

    diff --git a/.documentation/Structs/SequenceAsyncSequence.html b/.documentation/Structs/SequenceAsyncSequence.html new file mode 100644 index 0000000..555ea9f --- /dev/null +++ b/.documentation/Structs/SequenceAsyncSequence.html @@ -0,0 +1,331 @@ + + + + SequenceAsyncSequence Structure Reference + + + + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    SequenceAsyncSequence

    +
    +
    + +
    public struct SequenceAsyncSequence<P> : AsyncSequence where P : Sequence
    + +
    +
    +

    An async version of Sequence. Generally used to turn any Sequence into +it’s async counterpart.

    +
    let sequence = [0, 1, 2, 3].async
    +
    +for await value in sequence {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +
    + +
    +
    +
    +
      +
    • +
      + + + + Element + +
      +
      +
      +
      +
      +
      +

      The kind of elements streamed.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public typealias Element = P.Element
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    Initialization +

    +
    +
    +
      +
    • +
      + + + + init(_:) + +
      +
      +
      +
      +
      +
      +

      Creates an async sequence that combines the two async sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(_ sequence: P)
      + +
      +
      +
      +

      Parameters

      + + + + + + + +
      + + p + + +
      +

      A sequence.

      +
      +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    AsyncSequence +

    +
    +
    +
      +
    • +
      + + + + makeAsyncIterator() + +
      +
      +
      +
      +
      +
      +

      Creates an async iterator that emits elements of this async sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public func makeAsyncIterator() -> SequenceAsyncSequenceIterator<P>
      + +
      +
      +
      +

      Return Value

      +

      An instance that conforms to AsyncIteratorProtocol.

      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + diff --git a/.documentation/Structs/SequenceAsyncSequenceIterator.html b/.documentation/Structs/SequenceAsyncSequenceIterator.html new file mode 100644 index 0000000..76b88fa --- /dev/null +++ b/.documentation/Structs/SequenceAsyncSequenceIterator.html @@ -0,0 +1,270 @@ + + + + SequenceAsyncSequenceIterator Structure Reference + + + + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    SequenceAsyncSequenceIterator

    +
    +
    + +
    public struct SequenceAsyncSequenceIterator<P> : AsyncIteratorProtocol where P : Sequence
    + +
    +
    + +
    +
    +
    +
    + + +
    + +

    Initialization +

    +
    +
    +
      +
    • +
      + + + + init(_:) + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(_ iterator: P.Iterator)
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    AsyncIteratorProtocol +

    +
    +
    +
      +
    • +
      + + + + next() + + + Asynchronous + +
      +
      +
      +
      +
      +
      +

      Produces the next element in the sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public mutating func next() async -> P.Element?
      + +
      +
      +
      +

      Return Value

      +

      The next element or nil if the end of the sequence is reached.

      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + diff --git a/.documentation/Structs/SharedAsyncSequence.html b/.documentation/Structs/SharedAsyncSequence.html index f94aa07..2c7d58e 100644 --- a/.documentation/Structs/SharedAsyncSequence.html +++ b/.documentation/Structs/SharedAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -174,16 +186,16 @@

    SharedAsyncSequence

    .shared() Task { - let values = try await self.stream.collect() + let values = try await self.stream.collect() // ... } Task.detached { - let values = try await self.stream.collect() + let values = try await self.stream.collect() // ... } -let values = try await self.stream.collect() +let values = try await self.stream.collect() // ...
    @@ -387,7 +399,7 @@

    CurrentElementAsyncSequence extension

    Declaration

    Swift

    -
    public func yield<Element>(_ element: Element) async where Base == CurrentElementAsyncSequence<Element>
    +
    public func yield<Element>(_ element: Element) async where Base == CurrentElementAsyncSequence<Element>
    @@ -438,7 +450,7 @@

    Parameters

    Declaration

    Swift

    -
    public func finish<Element>() async where Base == CurrentElementAsyncSequence<Element>
    +
    public func finish<Element>() async where Base == CurrentElementAsyncSequence<Element>
    @@ -470,7 +482,7 @@

    Declaration

    Declaration

    Swift

    -
    public func finish<Element>(with element: Element) async where Base == CurrentElementAsyncSequence<Element>
    +
    public func finish<Element>(with element: Element) async where Base == CurrentElementAsyncSequence<Element>
    @@ -519,7 +531,7 @@

    Parameters

    Declaration

    Swift

    -
    public func element<Element>() async -> Element where Base == CurrentElementAsyncSequence<Element>
    +
    public func element<Element>() async -> Element where Base == CurrentElementAsyncSequence<Element>
    @@ -669,7 +681,7 @@

    Parameters

    diff --git a/.documentation/Structs/ThrottleAsyncSequence.html b/.documentation/Structs/ThrottleAsyncSequence.html index ad7b70f..428b4de 100644 --- a/.documentation/Structs/ThrottleAsyncSequence.html +++ b/.documentation/Structs/ThrottleAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -165,9 +177,9 @@

    ThrottleAsyncSequence

    interval you specify. Other elements received within the throttling interval aren’t emitted.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -175,7 +187,7 @@ 

    ThrottleAsyncSequence

    continuation.finish() } -for element in try await self.stream.throttle(for: 0.05, latest: true) { +for element in try await self.stream.throttle(for: 0.05, latest: true) { print(element) } @@ -386,7 +398,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -402,7 +414,7 @@

    Return Value

    diff --git a/.documentation/Structs/ThrowingPassthroughAsyncSequence.html b/.documentation/Structs/ThrowingPassthroughAsyncSequence.html index 4ed7e8f..bcf2f02 100644 --- a/.documentation/Structs/ThrowingPassthroughAsyncSequence.html +++ b/.documentation/Structs/ThrowingPassthroughAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -165,7 +177,7 @@

    ThrowingPassthroughAsyncSequence

    sequence.finish(throwing: TestError()) do { - for try await value in sequence { + for try await value in sequence { print(value) } } catch { @@ -455,7 +467,7 @@

    Parameters

    diff --git a/.documentation/Structs/Zip3AsyncSequence.html b/.documentation/Structs/Zip3AsyncSequence.html index 1c57834..7c85f17 100644 --- a/.documentation/Structs/Zip3AsyncSequence.html +++ b/.documentation/Structs/Zip3AsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -185,7 +197,7 @@

    Zip3AsyncSequence

    continuation.finish() } -for await value in streamA.zip(streamB, streamC) { +for await value in streamA.zip(streamB, streamC) { print(value) } @@ -311,7 +323,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -327,7 +339,7 @@

    Return Value

    diff --git a/.documentation/Structs/ZipAsyncSequence.html b/.documentation/Structs/ZipAsyncSequence.html index a7c2faf..e420588 100644 --- a/.documentation/Structs/ZipAsyncSequence.html +++ b/.documentation/Structs/ZipAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -179,7 +191,7 @@

    ZipAsyncSequence

    continuation.finish() } -for await value in streamA.zip(streamB) { +for await value in streamA.zip(streamB) { print(value) } @@ -305,7 +317,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -321,7 +333,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Actors.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Actors.html index e5f17ff..692e01a 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Actors.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Actors.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -171,15 +183,15 @@

    Actors

    A async sequence that wraps a single value and emits a new element whenever the element changes.

    let sequence = CurrentElementAsyncSequence(0)
    -print(await sequence.element)
    +print(await sequence.element)
     
    -await stream.yield(1)
    -print(await sequence.element)
    +await stream.yield(1)
    +print(await sequence.element)
     
    -await stream.yield(2)
    -await stream.yield(3)
    -await stream.yield(4)
    -print(await sequence.element)
    +await stream.yield(2)
    +await stream.yield(3)
    +await stream.yield(4)
    +print(await sequence.element)
     
     // Prints:
     // 0
    @@ -193,7 +205,7 @@ 

    Actors

    Declaration

    Swift

    -
    public actor CurrentElementAsyncSequence<Element> : AsyncSequence
    +
    public actor CurrentElementAsyncSequence<Element> : AsyncSequence
    @@ -205,7 +217,7 @@

    Declaration

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Actors/CurrentElementAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Actors/CurrentElementAsyncSequence.html index 90cccb5..ffc1d4f 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Actors/CurrentElementAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Actors/CurrentElementAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -153,21 +165,21 @@

    CurrentElementAsyncSequence

    -
    public actor CurrentElementAsyncSequence<Element> : AsyncSequence
    +
    public actor CurrentElementAsyncSequence<Element> : AsyncSequence

    A async sequence that wraps a single value and emits a new element whenever the element changes.

    let sequence = CurrentElementAsyncSequence(0)
    -print(await sequence.element)
    +print(await sequence.element)
     
    -await stream.yield(1)
    -print(await sequence.element)
    +await stream.yield(1)
    +print(await sequence.element)
     
    -await stream.yield(2)
    -await stream.yield(3)
    -await stream.yield(4)
    -print(await sequence.element)
    +await stream.yield(2)
    +await stream.yield(3)
    +await stream.yield(4)
    +print(await sequence.element)
     
     // Prints:
     // 0
    @@ -298,7 +310,7 @@ 

    AsyncSequence

    Declaration

    Swift

    -
    nonisolated public func makeAsyncIterator() -> AsyncStream<Element>.Iterator
    +
    nonisolated public func makeAsyncIterator() -> AsyncStream<Element>.Iterator
    @@ -453,7 +465,7 @@

    Parameters

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Classes.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Classes.html index 2da3109..4a4c69f 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Classes.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Classes.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -173,7 +185,7 @@

    Classes

    let sequence = TimerAsyncSequence(interval: 1)
     
     let start = Date.now
    -for element in await sequence {
    +for element in await sequence {
         print(element)
     }
     
    @@ -201,7 +213,7 @@ 

    Declaration

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Classes/TimerAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Classes/TimerAsyncSequence.html index 534ae30..f2e6f7c 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Classes/TimerAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Classes/TimerAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -161,7 +173,7 @@

    TimerAsyncSequence

    let sequence = TimerAsyncSequence(interval: 1)
     
     let start = Date.now
    -for element in await sequence {
    +for element in await sequence {
         print(element)
     }
     
    @@ -350,7 +362,7 @@ 

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Enums.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Enums.html index 20624de..bfcf14f 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Enums.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Enums.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -189,7 +201,7 @@

    Declaration

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Enums/AsyncSequenceCompletion.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Enums/AsyncSequenceCompletion.html index eed8ab4..1eb3ea2 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Enums/AsyncSequenceCompletion.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Enums/AsyncSequenceCompletion.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -223,7 +235,7 @@

    Declaration

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions.html index ff32b5c..4321d63 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -267,10 +279,50 @@

    Declaration

    +
    +
    + + +
    + +

    Sequence +

    +
    +
    +
      +
    • +
      + + + + Sequence + +
      +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public extension Sequence
      + +
      +
      +
      +
      +
    • +
    +
    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncSequence.html index 611ebb3..e585d7f 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -275,7 +287,7 @@

    Return Value

    Declaration

    Swift

    -
    public func first() async rethrows -> Element?
    +
    public func first() async rethrows -> Element?
    @@ -300,14 +312,14 @@

    Declaration

    Collect elements from a sequence.

    // Collect all elements.
    -var values = await self.sequence.collect()
    +var values = await self.sequence.collect()
     print(values)
     
     // Prints:
     // [1, 2, 3]
     
     // Collect only 2 elements.
    -values = await self.sequence.collect(2)
    +values = await self.sequence.collect(2)
     print(values)
     
     // Prints:
    @@ -319,7 +331,7 @@ 

    Declaration

    Declaration

    Swift

    -
    public func collect(_ numberOfElements: Int? = .none) async rethrows -> [Element]
    +
    public func collect(_ numberOfElements: Int? = .none) async rethrows -> [Element]
    @@ -387,7 +399,7 @@

    Declaration

    Swift

    @discardableResult
    -public func sink(_ receiveValue: @escaping (Element) async -> Void) -> Task<Void, Error>
    +public func sink(_ receiveValue: @escaping (Element) async -> Void) -> Task<Void, Error>
    @@ -458,8 +470,8 @@

    Declaration

    Swift

    @discardableResult
     public func sink(
    -    receiveValue: @escaping (Element) async -> Void,
    -    receiveCompletion: @escaping (AsyncSequenceCompletion<Error>) async -> Void
    +    receiveValue: @escaping (Element) async -> Void,
    +    receiveCompletion: @escaping (AsyncSequenceCompletion<Error>) async -> Void
     ) -> Task<Void, Never>
    @@ -585,6 +597,120 @@

    Return Value

    +
    +
    + + +
    + +

    Chain +

    +
    +
    +
      +
    • +
      + + + + chain(with:) + +
      +
      +
      +
      +
      +
      +

      An asynchronous sequence that chains two async sequences.

      + +

      The combined sequence first emits the all the values from the first sequence +and then emits all values from the second.

      +
      let sequenceA = AsyncStream<Int> { continuation in
      +    continuation.yield(1)
      +    continuation.yield(2)
      +    continuation.yield(3)
      +    continuation.finish()
      +}
      +
      +let sequenceB = AsyncStream<Int> { continuation in
      +    continuation.yield(4)
      +    continuation.yield(5)
      +    continuation.yield(6)
      +    continuation.finish()
      +}
      +
      +let sequenceC = AsyncStream<Int> { continuation in
      +    continuation.yield(7)
      +    continuation.yield(8)
      +    continuation.yield(9)
      +    continuation.finish()
      +}
      +
      +for await value in sequenceA.chain(with: sequenceB).chain(with: sequenceC) {
      +    print(value)
      +}
      +
      +// Prints:
      +// 1
      +// 2
      +// 3
      +// 4
      +// 5
      +// 6
      +// 7
      +// 8
      +// 9
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public func chain<P>(with sequence: P) -> ChainAsyncSequence<Self, P> where P : AsyncSequence, Self.Element == P.Element
      + +
      +
      +
      +

      Parameters

      + + + + + + + + + + + +
      + + lhs + + +
      +

      The first async sequence to iterate through.

      +
      +
      + + rhs + + +
      +

      The second async sequence to iterate through.

      +
      +
      +
      +
      +

      Return Value

      +

      A async sequence chains the two sequences.

      +
      +
      +
      +
    • +
    +
    @@ -638,7 +764,7 @@

    Combine latest continuation.finish() } -for await value in streamA.combineLatest(streamB, streamC) { +for await value in streamA.combineLatest(streamB, streamC) { print(value) } @@ -734,7 +860,7 @@

    Return Value

    continuation.finish() } -for await value in self.streamA.combineLatest(self.streamB) { +for await value in self.streamA.combineLatest(self.streamB) { print(value) } @@ -816,9 +942,9 @@

    Debounce or high-volume async sequences where you need to reduce the number of elements emitted to a rate you specify.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -826,7 +952,7 @@ 

    Debounce continuation.finish() } -for element in try await self.stream.debounce(for: 0.1) { +for element in try await self.stream.debounce(for: 0.1) { print(element) } @@ -918,7 +1044,7 @@

    Delay } let start = Date.now -for element in try await self.stream.delay(for: 0.5) { +for element in try await self.stream.delay(for: 0.5) { print("\(element) - \(Date.now.timeIntervalSince(start))") } @@ -1020,7 +1146,7 @@

    Merge continuation.finish() } -for await value in streamA.merge(with: streamB, streamC) { +for await value in streamA.merge(with: streamB, streamC) { print(value) } @@ -1114,7 +1240,7 @@

    Return Value

    continuation.finish() } -for await value in streamA.merge(with: streamB) { +for await value in streamA.merge(with: streamB) { print(value) } @@ -1199,7 +1325,7 @@

    Replace error ) .replaceError(with: 0) -for await value in stream { +for await value in stream { print(value) } @@ -1315,9 +1441,9 @@

    Throttle interval you specify. Other elements received within the throttling interval aren’t emitted.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -1325,7 +1451,7 @@ 

    Throttle continuation.finish() } -for element in try await self.stream.throttle(for: 0.05, latest: true) { +for element in try await self.stream.throttle(for: 0.05, latest: true) { print(element) } @@ -1436,7 +1562,7 @@

    Zip continuation.finish() } -for await value in streamA.zip(streamB, streamC) { +for await value in streamA.zip(streamB, streamC) { print(value) } @@ -1529,7 +1655,7 @@

    Return Value

    continuation.finish() } -for await value in streamA.zip(streamB) { +for await value in streamA.zip(streamB) { print(value) } @@ -1677,7 +1803,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncStream.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncStream.html index d19d271..4cdcb5d 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncStream.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncStream.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -203,7 +215,7 @@

    Declaration

    public init(
         _ elementType: Element.Type = Element.self,
         bufferingPolicy limit: AsyncStream<Element>.Continuation.BufferingPolicy = .unbounded,
    -    _ build: @escaping (AsyncStream<Element>.Continuation) async -> Void
    +    _ build: @escaping (AsyncStream<Element>.Continuation) async -> Void
     )

    @@ -301,7 +313,7 @@

    Declaration

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncStream/Continuation.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncStream/Continuation.html index 7bf0c52..5fa591b 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncStream/Continuation.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncStream/Continuation.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -213,7 +225,7 @@

    Parameters

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncThrowingStream.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncThrowingStream.html index a08bb66..bcedac5 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncThrowingStream.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncThrowingStream.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -203,7 +215,7 @@

    Declaration

    public init(
         _ elementType: Element.Type = Element.self,
         bufferingPolicy limit: AsyncThrowingStream<Element, Failure>.Continuation.BufferingPolicy = .unbounded,
    -    _ build: @escaping (AsyncThrowingStream<Element, Failure>.Continuation) async -> Void
    +    _ build: @escaping (AsyncThrowingStream<Element, Failure>.Continuation) async -> Void
     ) where Failure == Error
    @@ -301,7 +313,7 @@

    Declaration

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncThrowingStream/Continuation.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncThrowingStream/Continuation.html index ccb8be7..cd4e86e 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncThrowingStream/Continuation.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/AsyncThrowingStream/Continuation.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -213,7 +225,7 @@

    Parameters

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/Sequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/Sequence.html new file mode 100644 index 0000000..4176a17 --- /dev/null +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/Sequence.html @@ -0,0 +1,227 @@ + + + + Sequence Extension Reference + + + + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Sequence

    +
    +
    + +
    public extension Sequence
    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + async + +
      +
      +
      +
      +
      +
      +

      An async sequence that contains all the elements of +the current sequence.

      +
      let sequence = [0, 1, 2, 3].async
      +
      +for await value in sequence {
      +    print(value)
      +}
      +
      +// Prints:
      +// 1
      +// 2
      +// 3
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      var async: SequenceAsyncSequence<Self> { get }
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/Task.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/Task.html index 1f0a041..2b3537a 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/Task.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Extensions/Task.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -197,7 +209,7 @@

    Available where Success == Nev

    Declaration

    Swift

    -
    public static func sleep(seconds duration: TimeInterval) async throws
    +
    public static func sleep(seconds duration: TimeInterval) async throws
    @@ -228,7 +240,7 @@

    Parameters

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs.html index b4d91fe..049f8f2 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -218,6 +230,74 @@

    Declaration

    +
  • +
    + + + + ChainAsyncSequence + +
    +
    +
    +
    +
    +
    +

    An asynchronous sequence that chains two async sequences.

    + +

    The combined sequence first emits the all the values from the first sequence +and then emits all values from the second.

    +
    let sequenceA = AsyncStream<Int> { continuation in
    +    continuation.yield(1)
    +    continuation.yield(2)
    +    continuation.yield(3)
    +    continuation.finish()
    +}
    +
    +let sequenceB = AsyncStream<Int> { continuation in
    +    continuation.yield(4)
    +    continuation.yield(5)
    +    continuation.yield(6)
    +    continuation.finish()
    +}
    +
    +let sequenceC = AsyncStream<Int> { continuation in
    +    continuation.yield(7)
    +    continuation.yield(8)
    +    continuation.yield(9)
    +    continuation.finish()
    +}
    +
    +for await value in sequenceA <> sequenceB <> sequenceC {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +// 4
    +// 5
    +// 6
    +// 7
    +// 8
    +// 9
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct ChainAsyncSequence<P, Q> : AsyncSequence where P : AsyncSequence, Q : AsyncSequence, P.Element == Q.Element
    +
    extension ChainAsyncSequence: AsyncIteratorProtocol
    + +
    +
    +
    +
    +
  • @@ -260,7 +340,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.combineLatest(streamB, streamC) { +for await value in streamA.combineLatest(streamB, streamC) { print(value) } @@ -322,7 +402,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.combineLatest(streamB) { +for await value in streamA.combineLatest(streamB) { print(value) } @@ -368,9 +448,9 @@

    Declaration

    or high-volume async sequences where you need to reduce the number of elements emitted to a rate you specify.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -378,7 +458,7 @@ 

    Declaration

    continuation.finish() } -for element in try await self.stream.debounce(for: 0.1) { +for element in try await self.stream.debounce(for: 0.1) { print(element) } @@ -424,7 +504,7 @@

    Declaration

    } let start = Date.now -for element in try await self.stream.delay(for: 0.5) { +for element in try await self.stream.delay(for: 0.5) { print("\(element) - \(Date.now.timeIntervalSince(start))") } @@ -511,7 +591,7 @@

    Declaration

    let stream = Fail<Int, TestError>(error: TestError())
     
     do {
    -    for try await value in stream {
    +    for try await value in stream {
             print(value)
         }
     } catch {
    @@ -552,7 +632,7 @@ 

    Declaration

    An asynchronous sequence that only emits the provided value once.

    let stream = Just(1)
     
    -for await value in stream {
    +for await value in stream {
         print(value)
     }
     
    @@ -606,7 +686,7 @@ 

    Declaration

    continuation.finish() } -for await value in self.streamA.merge(with: self.streamB, self.streamC) { +for await value in self.streamA.merge(with: self.streamB, self.streamC) { print(value) } @@ -664,7 +744,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.merge(with: streamB) { +for await value in streamA.merge(with: streamB) { print(value) } @@ -714,7 +794,7 @@

    Declaration

    sequence.yield(2) sequence.finish() -for await value in sequence { +for await value in sequence { print(value) } @@ -760,7 +840,7 @@

    Declaration

    continuation.finish() } -for await value in stream.removeDuplicates() { +for await value in stream.removeDuplicates() { print(value) } @@ -803,7 +883,7 @@

    Declaration

    ) .replaceError(with: 0) -for await value in stream { +for await value in stream { print(value) } @@ -825,6 +905,86 @@

    Declaration

  • +
  • +
    + + + + SequenceAsyncSequence + +
    +
    +
    +
    +
    +
    +

    An async version of Sequence. Generally used to turn any Sequence into +it’s async counterpart.

    +
    let sequence = [0, 1, 2, 3].async
    +
    +for await value in sequence {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +
    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public struct SequenceAsyncSequence<P> : AsyncSequence where P : Sequence
    + +
    +
    +
    +
    +
  • + + +
    +
    + + +
    + +

    SequenceAsyncSequenceIterator +

    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct SequenceAsyncSequenceIterator<P> : AsyncIteratorProtocol where P : Sequence
      + +
      +
      +
      +
      +
    • @@ -855,16 +1015,16 @@

      Declaration

      .shared() Task { - let values = try await self.stream.collect() + let values = try await self.stream.collect() // ... } Task.detached { - let values = try await self.stream.collect() + let values = try await self.stream.collect() // ... } -let values = try await self.stream.collect() +let values = try await self.stream.collect() // ...

    @@ -901,9 +1061,9 @@

    Declaration

    interval you specify. Other elements received within the throttling interval aren’t emitted.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -911,7 +1071,7 @@ 

    Declaration

    continuation.finish() } -for element in try await self.stream.throttle(for: 0.05, latest: true) { +for element in try await self.stream.throttle(for: 0.05, latest: true) { print(element) } @@ -957,7 +1117,7 @@

    Declaration

    sequence.finish(throwing: TestError()) do { - for try await value in sequence { + for try await value in sequence { print(value) } } catch { @@ -1024,7 +1184,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.zip(streamB, streamC) { +for await value in streamA.zip(streamB, streamC) { print(value) } @@ -1081,7 +1241,7 @@

    Declaration

    continuation.finish() } -for await value in streamA.zip(streamB) { +for await value in streamA.zip(streamB) { print(value) } @@ -1109,7 +1269,7 @@

    Declaration

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/AnyAsyncSequenceable.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/AnyAsyncSequenceable.html index 6f03d6c..d20e75a 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/AnyAsyncSequenceable.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/AnyAsyncSequenceable.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -347,7 +359,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async -> Element?
    +
    public mutating func next() async -> Element?
    @@ -363,7 +375,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/AnyThrowingAsyncSequenceable.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/AnyThrowingAsyncSequenceable.html index 2ccee6e..c6811f9 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/AnyThrowingAsyncSequenceable.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/AnyThrowingAsyncSequenceable.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -347,7 +359,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -363,7 +375,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ChainAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ChainAsyncSequence.html new file mode 100644 index 0000000..6a9c1f5 --- /dev/null +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ChainAsyncSequence.html @@ -0,0 +1,421 @@ + + + + ChainAsyncSequence Structure Reference + + + + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    ChainAsyncSequence

    +
    +
    + +
    public struct ChainAsyncSequence<P, Q> : AsyncSequence where P : AsyncSequence, Q : AsyncSequence, P.Element == Q.Element
    +
    extension ChainAsyncSequence: AsyncIteratorProtocol
    + +
    +
    +

    An asynchronous sequence that chains two async sequences.

    + +

    The combined sequence first emits the all the values from the first sequence +and then emits all values from the second.

    +
    let sequenceA = AsyncStream<Int> { continuation in
    +    continuation.yield(1)
    +    continuation.yield(2)
    +    continuation.yield(3)
    +    continuation.finish()
    +}
    +
    +let sequenceB = AsyncStream<Int> { continuation in
    +    continuation.yield(4)
    +    continuation.yield(5)
    +    continuation.yield(6)
    +    continuation.finish()
    +}
    +
    +let sequenceC = AsyncStream<Int> { continuation in
    +    continuation.yield(7)
    +    continuation.yield(8)
    +    continuation.yield(9)
    +    continuation.finish()
    +}
    +
    +for await value in sequenceA <> sequenceB <> sequenceC {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +// 4
    +// 5
    +// 6
    +// 7
    +// 8
    +// 9
    +
    + +
    +
    +
    +
      +
    • +
      + + + + Element + +
      +
      +
      +
      +
      +
      +

      The kind of elements streamed.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public typealias Element = P.Element
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    Initialization +

    +
    +
    +
      +
    • +
      + + + + init(_:_:) + +
      +
      +
      +
      +
      +
      +

      Creates an async sequence that combines the two async sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(
      +    _ p: P,
      +    _ q: Q
      +)
      + +
      +
      +
      +

      Parameters

      + + + + + + + + + + + +
      + + p + + +
      +

      The first async sequence.

      +
      +
      + + q + + +
      +

      The second async sequence.

      +
      +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    AsyncSequence +

    +
    +
    +
      +
    • +
      + + + + makeAsyncIterator() + +
      +
      +
      +
      +
      +
      +

      Creates an async iterator that emits elements of this async sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public func makeAsyncIterator() -> ChainAsyncSequence<P, Q>
      + +
      +
      +
      +

      Return Value

      +

      An instance that conforms to AsyncIteratorProtocol.

      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    AsyncIteratorProtocol +

    +
    +
    +
      +
    • +
      + + + + next() + + + Asynchronous + +
      +
      +
      +
      +
      +
      +

      Produces the next element in the sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public mutating func next() async rethrows -> Element?
      + +
      +
      +
      +

      Return Value

      +

      The next element or nil if the end of the sequence is reached.

      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/CombineLatest3AsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/CombineLatest3AsyncSequence.html index 82ce6e5..8119f94 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/CombineLatest3AsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/CombineLatest3AsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -187,7 +199,7 @@

    CombineLatest3AsyncSequence

    continuation.finish() } -for await value in streamA.combineLatest(streamB, streamC) { +for await value in streamA.combineLatest(streamB, streamC) { print(value) } @@ -404,7 +416,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -420,7 +432,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/CombineLatestAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/CombineLatestAsyncSequence.html index 88f974a..66bed72 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/CombineLatestAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/CombineLatestAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -181,7 +193,7 @@

    CombineLatestAsyncSequence

    continuation.finish() } -for await value in streamA.combineLatest(streamB) { +for await value in streamA.combineLatest(streamB) { print(value) } @@ -385,7 +397,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -401,7 +413,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/DebounceAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/DebounceAsyncSequence.html index 98ff51e..df54ff7 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/DebounceAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/DebounceAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -165,9 +177,9 @@

    DebounceAsyncSequence

    or high-volume async sequences where you need to reduce the number of elements emitted to a rate you specify.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -175,7 +187,7 @@ 

    DebounceAsyncSequence

    continuation.finish() } -for element in try await self.stream.debounce(for: 0.1) { +for element in try await self.stream.debounce(for: 0.1) { print(element) } @@ -370,7 +382,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -386,7 +398,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/DelayAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/DelayAsyncSequence.html index 02c7343..efd74dc 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/DelayAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/DelayAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -167,7 +179,7 @@

    DelayAsyncSequence

    } let start = Date.now -for element in try await self.stream.delay(for: 0.5) { +for element in try await self.stream.delay(for: 0.5) { print("\(element) - \(Date.now.timeIntervalSince(start))") } @@ -362,7 +374,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -378,7 +390,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Empty.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Empty.html index 3f99eb6..d76ec4b 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Empty.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Empty.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -317,7 +329,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async -> Element?
    +
    public mutating func next() async -> Element?
    @@ -333,7 +345,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Fail.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Fail.html index 1632ed6..633a05b 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Fail.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Fail.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -164,7 +176,7 @@

    Fail

    let stream = Fail<Int, TestError>(error: TestError())
     
     do {
    -    for try await value in stream {
    +    for try await value in stream {
             print(value)
         }
     } catch {
    @@ -314,7 +326,7 @@ 

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -330,7 +342,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Just.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Just.html index ed52367..f256d7a 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Just.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Just.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -161,7 +173,7 @@

    Just

    An asynchronous sequence that only emits the provided value once.

    let stream = Just(1)
     
    -for await value in stream {
    +for await value in stream {
         print(value)
     }
     
    @@ -308,7 +320,7 @@ 

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async -> Element?
    +
    public mutating func next() async -> Element?
    @@ -324,7 +336,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Merge3AsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Merge3AsyncSequence.html index b7f3c63..0d79699 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Merge3AsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Merge3AsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -177,7 +189,7 @@

    Merge3AsyncSequence

    continuation.finish() } -for await value in self.streamA.merge(with: self.streamB, self.streamC) { +for await value in self.streamA.merge(with: self.streamB, self.streamC) { print(value) } @@ -380,7 +392,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -396,7 +408,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/MergeAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/MergeAsyncSequence.html index 9b93e24..19d83b4 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/MergeAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/MergeAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -178,7 +190,7 @@

    MergeAsyncSequence

    continuation.finish() } -for await value in streamA.merge(with: streamB) { +for await value in streamA.merge(with: streamB) { print(value) } @@ -385,7 +397,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -401,7 +413,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/PassthroughAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/PassthroughAsyncSequence.html index cc1792b..6aad9c7 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/PassthroughAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/PassthroughAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -164,7 +176,7 @@

    PassthroughAsyncSequence

    sequence.yield(2) sequence.finish() -for await value in sequence { +for await value in sequence { print(value) } @@ -401,7 +413,7 @@

    Parameters

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/RemoveDuplicatesAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/RemoveDuplicatesAsyncSequence.html index 5a3ae22..8ed4c06 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/RemoveDuplicatesAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/RemoveDuplicatesAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -168,7 +180,7 @@

    RemoveDuplicatesAsyncSequence

    continuation.finish() } -for await value in stream.removeDuplicates() { +for await value in stream.removeDuplicates() { print(value) } @@ -398,7 +410,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -414,7 +426,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ReplaceErrorAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ReplaceErrorAsyncSequence.html index d29cd08..fbcf21a 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ReplaceErrorAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ReplaceErrorAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -164,7 +176,7 @@

    ReplaceErrorAsyncSequence

    ) .replaceError(with: 0) -for await value in stream { +for await value in stream { print(value) } @@ -354,7 +366,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async -> Element?
    +
    public mutating func next() async -> Element?
    @@ -370,7 +382,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SequenceAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SequenceAsyncSequence.html new file mode 100644 index 0000000..555ea9f --- /dev/null +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SequenceAsyncSequence.html @@ -0,0 +1,331 @@ + + + + SequenceAsyncSequence Structure Reference + + + + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    SequenceAsyncSequence

    +
    +
    + +
    public struct SequenceAsyncSequence<P> : AsyncSequence where P : Sequence
    + +
    +
    +

    An async version of Sequence. Generally used to turn any Sequence into +it’s async counterpart.

    +
    let sequence = [0, 1, 2, 3].async
    +
    +for await value in sequence {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +
    + +
    +
    +
    +
      +
    • +
      + + + + Element + +
      +
      +
      +
      +
      +
      +

      The kind of elements streamed.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public typealias Element = P.Element
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    Initialization +

    +
    +
    +
      +
    • +
      + + + + init(_:) + +
      +
      +
      +
      +
      +
      +

      Creates an async sequence that combines the two async sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(_ sequence: P)
      + +
      +
      +
      +

      Parameters

      + + + + + + + +
      + + p + + +
      +

      A sequence.

      +
      +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    AsyncSequence +

    +
    +
    +
      +
    • +
      + + + + makeAsyncIterator() + +
      +
      +
      +
      +
      +
      +

      Creates an async iterator that emits elements of this async sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public func makeAsyncIterator() -> SequenceAsyncSequenceIterator<P>
      + +
      +
      +
      +

      Return Value

      +

      An instance that conforms to AsyncIteratorProtocol.

      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SequenceAsyncSequenceIterator.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SequenceAsyncSequenceIterator.html new file mode 100644 index 0000000..76b88fa --- /dev/null +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SequenceAsyncSequenceIterator.html @@ -0,0 +1,270 @@ + + + + SequenceAsyncSequenceIterator Structure Reference + + + + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    + +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    SequenceAsyncSequenceIterator

    +
    +
    + +
    public struct SequenceAsyncSequenceIterator<P> : AsyncIteratorProtocol where P : Sequence
    + +
    +
    + +
    +
    +
    +
    + + +
    + +

    Initialization +

    +
    +
    +
      +
    • +
      + + + + init(_:) + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(_ iterator: P.Iterator)
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + + +
    + +

    AsyncIteratorProtocol +

    +
    +
    +
      +
    • +
      + + + + next() + + + Asynchronous + +
      +
      +
      +
      +
      +
      +

      Produces the next element in the sequence.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public mutating func next() async -> P.Element?
      + +
      +
      +
      +

      Return Value

      +

      The next element or nil if the end of the sequence is reached.

      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SharedAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SharedAsyncSequence.html index f94aa07..2c7d58e 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SharedAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/SharedAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -174,16 +186,16 @@

    SharedAsyncSequence

    .shared() Task { - let values = try await self.stream.collect() + let values = try await self.stream.collect() // ... } Task.detached { - let values = try await self.stream.collect() + let values = try await self.stream.collect() // ... } -let values = try await self.stream.collect() +let values = try await self.stream.collect() // ...
    @@ -387,7 +399,7 @@

    CurrentElementAsyncSequence extension

    Declaration

    Swift

    -
    public func yield<Element>(_ element: Element) async where Base == CurrentElementAsyncSequence<Element>
    +
    public func yield<Element>(_ element: Element) async where Base == CurrentElementAsyncSequence<Element>
    @@ -438,7 +450,7 @@

    Parameters

    Declaration

    Swift

    -
    public func finish<Element>() async where Base == CurrentElementAsyncSequence<Element>
    +
    public func finish<Element>() async where Base == CurrentElementAsyncSequence<Element>
    @@ -470,7 +482,7 @@

    Declaration

    Declaration

    Swift

    -
    public func finish<Element>(with element: Element) async where Base == CurrentElementAsyncSequence<Element>
    +
    public func finish<Element>(with element: Element) async where Base == CurrentElementAsyncSequence<Element>
    @@ -519,7 +531,7 @@

    Parameters

    Declaration

    Swift

    -
    public func element<Element>() async -> Element where Base == CurrentElementAsyncSequence<Element>
    +
    public func element<Element>() async -> Element where Base == CurrentElementAsyncSequence<Element>
    @@ -669,7 +681,7 @@

    Parameters

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ThrottleAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ThrottleAsyncSequence.html index ad7b70f..428b4de 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ThrottleAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ThrottleAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -165,9 +177,9 @@

    ThrottleAsyncSequence

    interval you specify. Other elements received within the throttling interval aren’t emitted.

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -175,7 +187,7 @@ 

    ThrottleAsyncSequence

    continuation.finish() } -for element in try await self.stream.throttle(for: 0.05, latest: true) { +for element in try await self.stream.throttle(for: 0.05, latest: true) { print(element) } @@ -386,7 +398,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async throws -> Element?
    +
    public mutating func next() async throws -> Element?
    @@ -402,7 +414,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ThrowingPassthroughAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ThrowingPassthroughAsyncSequence.html index 4ed7e8f..bcf2f02 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ThrowingPassthroughAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ThrowingPassthroughAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -165,7 +177,7 @@

    ThrowingPassthroughAsyncSequence

    sequence.finish(throwing: TestError()) do { - for try await value in sequence { + for try await value in sequence { print(value) } } catch { @@ -455,7 +467,7 @@

    Parameters

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Zip3AsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Zip3AsyncSequence.html index 1c57834..7c85f17 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Zip3AsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/Zip3AsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -185,7 +197,7 @@

    Zip3AsyncSequence

    continuation.finish() } -for await value in streamA.zip(streamB, streamC) { +for await value in streamA.zip(streamB, streamC) { print(value) } @@ -311,7 +323,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -327,7 +339,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ZipAsyncSequence.html b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ZipAsyncSequence.html index a7c2faf..e420588 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ZipAsyncSequence.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/Structs/ZipAsyncSequence.html @@ -77,6 +77,9 @@ + @@ -91,6 +94,9 @@ + @@ -127,6 +133,12 @@ + + @@ -179,7 +191,7 @@

    ZipAsyncSequence

    continuation.finish() } -for await value in streamA.zip(streamB) { +for await value in streamA.zip(streamB) { print(value) } @@ -305,7 +317,7 @@

    AsyncIteratorProtocol

    Declaration

    Swift

    -
    public mutating func next() async rethrows -> Element?
    +
    public mutating func next() async rethrows -> Element?
    @@ -321,7 +333,7 @@

    Return Value

    diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/badge.svg b/.documentation/docsets/.docset/Contents/Resources/Documents/badge.svg index bfac052..a096fec 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/badge.svg +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/badge.svg @@ -1,15 +1,15 @@ - + - + - - + + @@ -18,11 +18,11 @@ documentation - - 99% + + 100% - - 99% + + 100% diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/index.html b/.documentation/docsets/.docset/Contents/Resources/Documents/index.html index e5b8f09..ebfe09c 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/index.html +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/index.html @@ -76,6 +76,9 @@ + @@ -90,6 +93,9 @@ + @@ -126,6 +132,12 @@ + + @@ -207,7 +219,7 @@

    First

    continuation.finish() } -print(await sequence.first()) +print(await sequence.first()) // Prints: // 1 @@ -220,7 +232,7 @@

    Collect

    continuation.finish() } -print(await sequence.collect()) +print(await sequence.collect()) // Prints: // [1, 2, 3] @@ -268,6 +280,43 @@

    ChainAsyncSequenceable

    +
    let sequenceA = AsyncStream<Int> { continuation in
    +    continuation.yield(1)
    +    continuation.yield(2)
    +    continuation.yield(3)
    +    continuation.finish()
    +}
    +
    +let sequenceB = AsyncStream<Int> { continuation in
    +    continuation.yield(4)
    +    continuation.yield(5)
    +    continuation.yield(6)
    +    continuation.finish()
    +}
    +
    +let sequenceC = AsyncStream<Int> { continuation in
    +    continuation.yield(7)
    +    continuation.yield(8)
    +    continuation.yield(9)
    +    continuation.finish()
    +}
    +
    +for await value in sequenceA.chain(with: sequenceB).chain(with: sequenceC) {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +// 4
    +// 5
    +// 6
    +// 7
    +// 8
    +// 9
    +

    CombineLatestAsyncSequence

    let streamA = .init { continuation in
         continuation.yield(1)
    @@ -286,7 +335,7 @@ 

    continuation.finish() } -for await value in streamA.combineLatest(streamB, streamC) { +for await value in streamA.combineLatest(streamB, streamC) { print(value) } @@ -334,15 +383,15 @@

    CurrentElementAsyncSequence

    let sequence = CurrentElementAsyncSequence(0)
    -print(await sequence.element)
    +print(await sequence.element)
     
    -await stream.yield(1)
    -print(await sequence.element)
    +await stream.yield(1)
    +print(await sequence.element)
     
    -await stream.yield(2)
    -await stream.yield(3)
    -await stream.yield(4)
    -print(await sequence.element)
    +await stream.yield(2)
    +await stream.yield(3)
    +await stream.yield(4)
    +print(await sequence.element)
     
     // Prints:
     // 0
    @@ -352,9 +401,9 @@ 

    DebounceAsyncSequence

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -362,7 +411,7 @@ 

    } let start = Date.now -for element in try await self.stream.delay(for: 0.5) { +for element in try await self.stream.delay(for: 0.5) { print("\(element) - \(Date.now.timeIntervalSince(start))") } @@ -410,7 +459,7 @@

    let stream = Fail<Int, TestError>(error: TestError()) do { - for try await value in stream { + for try await value in stream { print(value) } } catch { @@ -423,7 +472,7 @@

    Just

    let stream = Just(1)
     
    -for await value in stream {
    +for await value in stream {
         print(value)
     }
     
    @@ -448,7 +497,7 @@ 

    continuation.finish() } -for await value in self.streamA.merge(with: self.streamB, self.streamC) { +for await value in self.streamA.merge(with: self.streamB, self.streamC) { print(value) } @@ -497,7 +546,7 @@

    continuation.finish() } -for await value in stream.removeDuplicates() { +for await value in stream.removeDuplicates() { print(value) } @@ -530,13 +579,25 @@

    SequenceAsyncSequence

    +
    let sequence = [0, 1, 2, 3].async
    +
    +for await value in sequence {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +

    SharedAsyncSequence

    let values = [
         "a",
    @@ -554,24 +615,24 @@ 

    ThrottleAsyncSequence

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -579,7 +640,7 @@ 

    sequence.finish(throwing: TestError()) do { - for try await value in sequence { + for try await value in sequence { print(value) } } catch { @@ -614,7 +675,7 @@

    continuation.finish() } -for await value in streamA.zip(streamB) { +for await value in streamA.zip(streamB) { print(value) } @@ -665,7 +726,7 @@

    AsyncThrowingStream.Co diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/search.json b/.documentation/docsets/.docset/Contents/Resources/Documents/search.json index 207daf4..d182d2f 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/search.json +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ZipAsyncSequence"},"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV04makeC8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ZipAsyncSequence"},"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV4next7ElementQz_AEQy_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ZipAsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"Zip3AsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV04makeC8IteratorACyxq_q0_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Zip3AsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV4next7ElementQz_AEQy_AEQy0_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Zip3AsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceVACyxGycfc":{"name":"init()","abstract":"

    Creates an async sequence that broadcasts elements.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV04makeD8IteratorScs0G0Vyxs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finish8throwingys5Error_p_tF":{"name":"finish(throwing:)","abstract":"

    Mark the sequence as finished by having it’s iterator throw the provided error.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV_8interval6latestACyxGx_SdSbtcfc":{"name":"init(_:interval:latest:)","abstract":"

    Creates an async sequence that emits either the most-recent or first element","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV0C8Iteratora":{"name":"AsyncIterator","abstract":"

    The type of async iterator.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The type of elements streamed.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceVyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates a shareable async sequence that can be used across multiple tasks.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV5yieldyyqd__YaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finishyyYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finish4withyqd___tYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV7elementqd__yYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"element()","abstract":"

    The element wrapped by this async sequence, emitted as a new element whenever it changes.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV5yieldyyqd__AA011PassthroughcD0Vyqd__GRszlF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finishyyAA011PassthroughcD0Vyqd__GRszlF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finish4withyqd___tAA011PassthroughcD0Vyqd__GRszlF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV4base6outputACyxGx_7ElementQztcfc":{"name":"init(base:output:)","abstract":"

    Creates an async sequence that replaces any errors in the sequence with a provided element.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV4next7ElementQzSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV9Predicatea":{"name":"Predicate","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV4base9predicateACyxGx_Sb7ElementQz_AHtctcfc":{"name":"init(base:predicate:)","abstract":"

    Creates an async that only emits elements that don’t match the previous element,","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceVACyxGycfc":{"name":"init()","abstract":"

    Creates an async sequence that broadcasts elements.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV04makeC8IteratorScS0F0Vyx_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceVyACyxGx_xtcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that merges the provided async sequence’s.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV04makeC8IteratorScS0F0Vy7ElementQz_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"MergeAsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceVyACyxGx_xxtcfc":{"name":"init(_:_:_:)","abstract":"

    Creates an async sequence that merges the provided async sequence’s.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Just.html#/s:10Asynchrone4JustVyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that emits an element once.

    ","parent_name":"Just"},"Structs/Just.html#/s:10Asynchrone4JustV17makeAsyncIteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Just"},"Structs/Just.html#/s:10Asynchrone4JustV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Just"},"Structs/Fail.html#/s:10Asynchrone4FailV5errorACyxq_Gq__tcfc":{"name":"init(error:)","abstract":"

    Creates an async sequence that throws an error.

    ","parent_name":"Fail"},"Structs/Fail.html#/s:10Asynchrone4FailV17makeAsyncIteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Fail"},"Structs/Fail.html#/s:10Asynchrone4FailV4nextxSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Fail"},"Structs/Empty.html#/s:10Asynchrone5EmptyV19completeImmediatelyACyxGSb_tcfc":{"name":"init(completeImmediately:)","abstract":"

    Creates an empty async sequence.

    ","parent_name":"Empty"},"Structs/Empty.html#/s:10Asynchrone5EmptyV17makeAsyncIteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Empty"},"Structs/Empty.html#/s:10Asynchrone5EmptyV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Empty"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV_8intervalACyxGx_Sdtcfc":{"name":"init(_:interval:)","abstract":"

    Creates an async sequence that delays emission of elements and completion.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV04makeC8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"DelayAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV_7dueTimeACyxGx_Sdtcfc":{"name":"init(_:dueTime:)","abstract":"

    Creates an async sequence that emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"DebounceAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceVyACyxq_Gx_q_tcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that only emits elements that don’t match the previous element,","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV04makeD8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV4next7ElementQz_AEQy_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceVyACyxq_q0_Gx_q_q0_tcfc":{"name":"init(_:_:_:)","abstract":"

    Creates an async sequence that only emits elements that don’t match the previous element,","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV04makeD8IteratorACyxq_q0_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV4next7ElementQz_AEQy_AEQy0_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableVyACyxGqd__c7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableVyACyxGSgqd__Sgc7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates an optional type erasing async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableV4nextxSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableVyACyxGqd__c7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableVyACyxGSgqd__Sgc7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates an optional type erasing async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableV04makeC8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html":{"name":"AnyAsyncSequenceable","abstract":"

    An async sequence that performs type erasure by wrapping another async sequence.

    "},"Structs/AnyThrowingAsyncSequenceable.html":{"name":"AnyThrowingAsyncSequenceable","abstract":"

    A throwing async sequence that performs type erasure by wrapping another throwing async sequence.

    "},"Structs/CombineLatest3AsyncSequence.html":{"name":"CombineLatest3AsyncSequence","abstract":"

    An asynchronous sequence that combines three async sequences.

    "},"Structs/CombineLatestAsyncSequence.html":{"name":"CombineLatestAsyncSequence","abstract":"

    An asynchronous sequence that combines two async sequences.

    "},"Structs/DebounceAsyncSequence.html":{"name":"DebounceAsyncSequence","abstract":"

    A async sequence that emits elements only after a specified time interval elapses between emissions.

    "},"Structs/DelayAsyncSequence.html":{"name":"DelayAsyncSequence","abstract":"

    Delays emission of all elements by the provided interval.

    "},"Structs/Empty.html":{"name":"Empty","abstract":"

    An asynchronous sequence that only emits the provided value once.

    "},"Structs/Fail.html":{"name":"Fail","abstract":"

    An asynchronous sequence that immediately throws an error when iterated.

    "},"Structs/Just.html":{"name":"Just","abstract":"

    An asynchronous sequence that only emits the provided value once.

    "},"Structs/Merge3AsyncSequence.html":{"name":"Merge3AsyncSequence","abstract":"

    An asynchronous sequence that merges three async sequences.

    "},"Structs/MergeAsyncSequence.html":{"name":"MergeAsyncSequence","abstract":"

    An asynchronous sequence that merges two async sequences.

    "},"Structs/PassthroughAsyncSequence.html":{"name":"PassthroughAsyncSequence","abstract":"

    A async sequence that broadcasts elements.

    "},"Structs/RemoveDuplicatesAsyncSequence.html":{"name":"RemoveDuplicatesAsyncSequence","abstract":"

    An asynchronous sequence that streams only elements from the base asynchronous sequence"},"Structs/ReplaceErrorAsyncSequence.html":{"name":"ReplaceErrorAsyncSequence","abstract":"

    An async sequence that replaces any errors in the sequence with a provided element.

    "},"Structs/SharedAsyncSequence.html":{"name":"SharedAsyncSequence","abstract":"

    An async sequence that can be shared between multiple tasks.

    "},"Structs/ThrottleAsyncSequence.html":{"name":"ThrottleAsyncSequence","abstract":"

    An async sequence that emits either the most-recent or first element emitted"},"Structs/ThrowingPassthroughAsyncSequence.html":{"name":"ThrowingPassthroughAsyncSequence","abstract":"

    A async sequence that broadcasts elements.

    "},"Structs/Zip3AsyncSequence.html":{"name":"Zip3AsyncSequence","abstract":"

    An asynchronous sequence that applys a zip function to the three async sequences.

    "},"Structs/ZipAsyncSequence.html":{"name":"ZipAsyncSequence","abstract":"

    An asynchronous sequence that applys a zip function to the two async sequences.

    "},"Extensions/Task.html#/s:ScT10Asynchrones5NeverORszACRs_rlE5sleep7secondsySd_tYaKFZ":{"name":"sleep(seconds:)","abstract":"

    Suspends the current task for at least the given duration in seconds.

    ","parent_name":"Task"},"Extensions/AsyncThrowingStream/Continuation.html#/s:Scs12ContinuationV10AsynchroneE6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Yield the provided value and then finish the stream.

    ","parent_name":"Continuation"},"Extensions/AsyncThrowingStream.html#/s:Scs10AsynchroneE_15bufferingPolicy_Scsyxs5Error_pGxm_Scs12ContinuationV09BufferingC0OyxsAC_p__GyAFyxsAC_p_GYactcsAC_pRs_rlufc":{"name":"init(_:bufferingPolicy:_:)","abstract":"

    Construct a AsyncThrowingStream buffering given an Element type.

    ","parent_name":"AsyncThrowingStream"},"Extensions/AsyncThrowingStream/Continuation.html":{"name":"Continuation","parent_name":"AsyncThrowingStream"},"Extensions/AsyncStream/Continuation.html#/s:ScS12ContinuationV10AsynchroneE6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Yield the provided value and then finish the stream.

    ","parent_name":"Continuation"},"Extensions/AsyncStream.html#/s:ScS10AsynchroneE_15bufferingPolicy_ScSyxGxm_ScS12ContinuationV09BufferingC0Oyx__GyAEyx_GYactcfc":{"name":"init(_:bufferingPolicy:_:)","abstract":"

    Construct a AsyncStream buffering given an Element type.

    ","parent_name":"AsyncStream"},"Extensions/AsyncStream/Continuation.html":{"name":"Continuation","parent_name":"AsyncStream"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE6assign2to2onScTyyts5Error_pGs24ReferenceWritableKeyPathCyqd__7ElementQzG_qd__tKlF":{"name":"assign(to:on:)","abstract":"

    Assigns each element from an async sequence to a property on an object.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5first7ElementQzSgyYaKF":{"name":"first()","abstract":"

    The first element of the sequence, if there is one.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE7collectySay7ElementQzGSiSgYaKF":{"name":"collect(_:)","abstract":"

    Collect elements from a sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE4sinkyScTyyts5Error_pGy7ElementQzYacF":{"name":"sink(_:)","abstract":"

    Consume the async sequence and pass the element’s to a closure.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE4sink12receiveValue0C10CompletionScTyyts5NeverOGy7ElementQzYac_yAA013AsyncSequenceE0Oys5Error_pGYactF":{"name":"sink(receiveValue:receiveCompletion:)","abstract":"

    Consume the async sequence and pass the element’s and it’s completion","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE27eraseToAnyAsyncSequenceableAA0deF0Vy7ElementQzGyF":{"name":"eraseToAnyAsyncSequenceable()","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE35eraseToAnyThrowingAsyncSequenceableAA0defG0Vy7ElementQzGyF":{"name":"eraseToAnyThrowingAsyncSequenceable()","abstract":"

    Creates a throwing type erasing async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE13combineLatestyAA27CombineLatest3AsyncSequenceVyxqd__qd_0_Gqd___qd_0_tSciRd__SciRd_0_r0_lF":{"name":"combineLatest(_:_:)","abstract":"

    Combine three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE13combineLatestyAA07CombineC13AsyncSequenceVyxqd__Gqd__SciRd__lF":{"name":"combineLatest(_:)","abstract":"

    Combine with an additional async sequence to produce a AsyncCombineLatest2Sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE8debounce3forAA21DebounceAsyncSequenceVyxGSd_tF":{"name":"debounce(for:)","abstract":"

    Emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5delay3forAA18DelayAsyncSequenceVyxGSd_tF":{"name":"delay(for:)","abstract":"

    Delays emission of all elements by the provided interval.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5merge4with_AA19Merge3AsyncSequenceVyxGx_xtF":{"name":"merge(with:_:)","abstract":"

    An asynchronous sequence that merges three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5merge4withAA18MergeAsyncSequenceVyxGx_tF":{"name":"merge(with:)","abstract":"

    An asynchronous sequence that merges two async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE12replaceError4withAA07ReplaceC13AsyncSequenceVyxG7ElementQz_tF":{"name":"replaceError(with:)","abstract":"

    Replaces any errors in the async sequence with the provided element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE6sharedAA19SharedAsyncSequenceVyxGyF":{"name":"shared()","abstract":"

    Creates a shareable async sequence that can be used across multiple tasks.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE8throttle3for6latestAA21ThrottleAsyncSequenceVyxGSd_SbtF":{"name":"throttle(for:latest:)","abstract":"

    Emits either the most-recent or first element emitted by the base async","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE3zipyAA17Zip3AsyncSequenceVyxqd__qd_0_Gqd___qd_0_tSciRd__SciRd_0_r0_lF":{"name":"zip(_:_:)","abstract":"

    Create an asynchronous sequence that applys a zip function to the three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE3zipyAA16ZipAsyncSequenceVyxqd__Gqd__SciRd__lF":{"name":"zip(_:)","abstract":"

    Create an asynchronous sequence that applys a zip function to the two async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneSQ7ElementRpzrlE16removeDuplicatesAA06RemoveD13AsyncSequenceVyxGyF":{"name":"removeDuplicates()","abstract":"

    Emits only elements that don’t match the previous element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneSQ7ElementRpzrlE16removeDuplicates2byAA06RemoveD13AsyncSequenceVyxGSbAC_ACtc_tF":{"name":"removeDuplicates(by:)","abstract":"

    Omits any element that the predicate determines is equal to the previous element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html":{"name":"AsyncSequence"},"Extensions/AsyncStream.html":{"name":"AsyncStream"},"Extensions/AsyncThrowingStream.html":{"name":"AsyncThrowingStream"},"Extensions/Task.html":{"name":"Task"},"Enums/AsyncSequenceCompletion.html#/s:10Asynchrone23AsyncSequenceCompletionO8finishedyACyxGAEms5ErrorRzlF":{"name":"finished","abstract":"

    The async sequence finished normally.

    ","parent_name":"AsyncSequenceCompletion"},"Enums/AsyncSequenceCompletion.html#/s:10Asynchrone23AsyncSequenceCompletionO7failureyACyxGxcAEms5ErrorRzlF":{"name":"failure(_:)","abstract":"

    The async sequence stopped emitting elements due to","parent_name":"AsyncSequenceCompletion"},"Enums/AsyncSequenceCompletion.html":{"name":"AsyncSequenceCompletion","abstract":"

    Describes how an async sequence has completed.

    "},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC8intervalACSd_tcfc":{"name":"init(interval:)","abstract":"

    Creates an async sequence that emits the current date on a given interval.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC6cancelyyF":{"name":"cancel()","abstract":"

    Cancel the sequence from emitting anymore elements.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC04makeC8IteratorScS0F0Vy10Foundation4DateV_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html":{"name":"TimerAsyncSequence","abstract":"

    An async sequence that emits the current date on a given interval.

    "},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC7elementxvp":{"name":"element","abstract":"

    The element wrapped by this async sequence, emitted as a new element whenever it changes.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceCyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC04makeD8IteratorScS0G0Vyx_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html":{"name":"CurrentElementAsyncSequence","abstract":"

    A async sequence that wraps a single value and emits a new element whenever the element changes.

    "},"Actors.html":{"name":"Actors","abstract":"

    The following actors are available globally.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ZipAsyncSequence"},"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV04makeC8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ZipAsyncSequence"},"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV4next7ElementQz_AEQy_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ZipAsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"Zip3AsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV04makeC8IteratorACyxq_q0_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Zip3AsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV4next7ElementQz_AEQy_AEQy0_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Zip3AsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceVACyxGycfc":{"name":"init()","abstract":"

    Creates an async sequence that broadcasts elements.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV04makeD8IteratorScs0G0Vyxs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finish8throwingys5Error_p_tF":{"name":"finish(throwing:)","abstract":"

    Mark the sequence as finished by having it’s iterator throw the provided error.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV_8interval6latestACyxGx_SdSbtcfc":{"name":"init(_:interval:latest:)","abstract":"

    Creates an async sequence that emits either the most-recent or first element","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV0C8Iteratora":{"name":"AsyncIterator","abstract":"

    The type of async iterator.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The type of elements streamed.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceVyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates a shareable async sequence that can be used across multiple tasks.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV5yieldyyqd__YaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finishyyYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finish4withyqd___tYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV7elementqd__yYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"element()","abstract":"

    The element wrapped by this async sequence, emitted as a new element whenever it changes.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV5yieldyyqd__AA011PassthroughcD0Vyqd__GRszlF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finishyyAA011PassthroughcD0Vyqd__GRszlF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finish4withyqd___tAA011PassthroughcD0Vyqd__GRszlF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SequenceAsyncSequenceIterator.html#/s:10Asynchrone013SequenceAsyncB8IteratorVyACyxG0D0Qzcfc":{"name":"init(_:)","parent_name":"SequenceAsyncSequenceIterator"},"Structs/SequenceAsyncSequenceIterator.html#/s:10Asynchrone013SequenceAsyncB8IteratorV4next7ElementQzSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"SequenceAsyncSequenceIterator"},"Structs/SequenceAsyncSequence.html#/s:10Asynchrone013SequenceAsyncB0V7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"SequenceAsyncSequence"},"Structs/SequenceAsyncSequence.html#/s:10Asynchrone013SequenceAsyncB0VyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that combines the two async sequence.

    ","parent_name":"SequenceAsyncSequence"},"Structs/SequenceAsyncSequence.html#/s:10Asynchrone013SequenceAsyncB0V04makeC8IteratorAA0bcbE0VyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"SequenceAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV4base6outputACyxGx_7ElementQztcfc":{"name":"init(base:output:)","abstract":"

    Creates an async sequence that replaces any errors in the sequence with a provided element.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV4next7ElementQzSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV9Predicatea":{"name":"Predicate","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV4base9predicateACyxGx_Sb7ElementQz_AHtctcfc":{"name":"init(base:predicate:)","abstract":"

    Creates an async that only emits elements that don’t match the previous element,","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceVACyxGycfc":{"name":"init()","abstract":"

    Creates an async sequence that broadcasts elements.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV04makeC8IteratorScS0F0Vyx_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceVyACyxGx_xtcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that merges the provided async sequence’s.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV04makeC8IteratorScS0F0Vy7ElementQz_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"MergeAsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceVyACyxGx_xxtcfc":{"name":"init(_:_:_:)","abstract":"

    Creates an async sequence that merges the provided async sequence’s.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Just.html#/s:10Asynchrone4JustVyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that emits an element once.

    ","parent_name":"Just"},"Structs/Just.html#/s:10Asynchrone4JustV17makeAsyncIteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Just"},"Structs/Just.html#/s:10Asynchrone4JustV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Just"},"Structs/Fail.html#/s:10Asynchrone4FailV5errorACyxq_Gq__tcfc":{"name":"init(error:)","abstract":"

    Creates an async sequence that throws an error.

    ","parent_name":"Fail"},"Structs/Fail.html#/s:10Asynchrone4FailV17makeAsyncIteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Fail"},"Structs/Fail.html#/s:10Asynchrone4FailV4nextxSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Fail"},"Structs/Empty.html#/s:10Asynchrone5EmptyV19completeImmediatelyACyxGSb_tcfc":{"name":"init(completeImmediately:)","abstract":"

    Creates an empty async sequence.

    ","parent_name":"Empty"},"Structs/Empty.html#/s:10Asynchrone5EmptyV17makeAsyncIteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Empty"},"Structs/Empty.html#/s:10Asynchrone5EmptyV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Empty"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV_8intervalACyxGx_Sdtcfc":{"name":"init(_:interval:)","abstract":"

    Creates an async sequence that delays emission of elements and completion.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV04makeC8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"DelayAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV_7dueTimeACyxGx_Sdtcfc":{"name":"init(_:dueTime:)","abstract":"

    Creates an async sequence that emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"DebounceAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceVyACyxq_Gx_q_tcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that only emits elements that don’t match the previous element,","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV04makeD8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV4next7ElementQz_AEQy_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceVyACyxq_q0_Gx_q_q0_tcfc":{"name":"init(_:_:_:)","abstract":"

    Creates an async sequence that only emits elements that don’t match the previous element,","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV04makeD8IteratorACyxq_q0_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV4next7ElementQz_AEQy_AEQy0_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/ChainAsyncSequence.html#/s:10Asynchrone18ChainAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ChainAsyncSequence"},"Structs/ChainAsyncSequence.html#/s:10Asynchrone18ChainAsyncSequenceVyACyxq_Gx_q_tcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that combines the two async sequence.

    ","parent_name":"ChainAsyncSequence"},"Structs/ChainAsyncSequence.html#/s:10Asynchrone18ChainAsyncSequenceV04makeC8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ChainAsyncSequence"},"Structs/ChainAsyncSequence.html#/s:10Asynchrone18ChainAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ChainAsyncSequence"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableVyACyxGqd__c7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableVyACyxGSgqd__Sgc7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates an optional type erasing async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableV4nextxSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableVyACyxGqd__c7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableVyACyxGSgqd__Sgc7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates an optional type erasing async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableV04makeC8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html":{"name":"AnyAsyncSequenceable","abstract":"

    An async sequence that performs type erasure by wrapping another async sequence.

    "},"Structs/AnyThrowingAsyncSequenceable.html":{"name":"AnyThrowingAsyncSequenceable","abstract":"

    A throwing async sequence that performs type erasure by wrapping another throwing async sequence.

    "},"Structs/ChainAsyncSequence.html":{"name":"ChainAsyncSequence","abstract":"

    An asynchronous sequence that chains two async sequences.

    "},"Structs/CombineLatest3AsyncSequence.html":{"name":"CombineLatest3AsyncSequence","abstract":"

    An asynchronous sequence that combines three async sequences.

    "},"Structs/CombineLatestAsyncSequence.html":{"name":"CombineLatestAsyncSequence","abstract":"

    An asynchronous sequence that combines two async sequences.

    "},"Structs/DebounceAsyncSequence.html":{"name":"DebounceAsyncSequence","abstract":"

    A async sequence that emits elements only after a specified time interval elapses between emissions.

    "},"Structs/DelayAsyncSequence.html":{"name":"DelayAsyncSequence","abstract":"

    Delays emission of all elements by the provided interval.

    "},"Structs/Empty.html":{"name":"Empty","abstract":"

    An asynchronous sequence that only emits the provided value once.

    "},"Structs/Fail.html":{"name":"Fail","abstract":"

    An asynchronous sequence that immediately throws an error when iterated.

    "},"Structs/Just.html":{"name":"Just","abstract":"

    An asynchronous sequence that only emits the provided value once.

    "},"Structs/Merge3AsyncSequence.html":{"name":"Merge3AsyncSequence","abstract":"

    An asynchronous sequence that merges three async sequences.

    "},"Structs/MergeAsyncSequence.html":{"name":"MergeAsyncSequence","abstract":"

    An asynchronous sequence that merges two async sequences.

    "},"Structs/PassthroughAsyncSequence.html":{"name":"PassthroughAsyncSequence","abstract":"

    A async sequence that broadcasts elements.

    "},"Structs/RemoveDuplicatesAsyncSequence.html":{"name":"RemoveDuplicatesAsyncSequence","abstract":"

    An asynchronous sequence that streams only elements from the base asynchronous sequence"},"Structs/ReplaceErrorAsyncSequence.html":{"name":"ReplaceErrorAsyncSequence","abstract":"

    An async sequence that replaces any errors in the sequence with a provided element.

    "},"Structs/SequenceAsyncSequence.html":{"name":"SequenceAsyncSequence","abstract":"

    An async version of Sequence. Generally used to turn any Sequence into"},"Structs/SequenceAsyncSequenceIterator.html":{"name":"SequenceAsyncSequenceIterator"},"Structs/SharedAsyncSequence.html":{"name":"SharedAsyncSequence","abstract":"

    An async sequence that can be shared between multiple tasks.

    "},"Structs/ThrottleAsyncSequence.html":{"name":"ThrottleAsyncSequence","abstract":"

    An async sequence that emits either the most-recent or first element emitted"},"Structs/ThrowingPassthroughAsyncSequence.html":{"name":"ThrowingPassthroughAsyncSequence","abstract":"

    A async sequence that broadcasts elements.

    "},"Structs/Zip3AsyncSequence.html":{"name":"Zip3AsyncSequence","abstract":"

    An asynchronous sequence that applys a zip function to the three async sequences.

    "},"Structs/ZipAsyncSequence.html":{"name":"ZipAsyncSequence","abstract":"

    An asynchronous sequence that applys a zip function to the two async sequences.

    "},"Extensions/Sequence.html#/s:ST10AsynchroneE5asyncAA013SequenceAsyncC0VyxGvp":{"name":"async","abstract":"

    An async sequence that contains all the elements of","parent_name":"Sequence"},"Extensions/Task.html#/s:ScT10Asynchrones5NeverORszACRs_rlE5sleep7secondsySd_tYaKFZ":{"name":"sleep(seconds:)","abstract":"

    Suspends the current task for at least the given duration in seconds.

    ","parent_name":"Task"},"Extensions/AsyncThrowingStream/Continuation.html#/s:Scs12ContinuationV10AsynchroneE6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Yield the provided value and then finish the stream.

    ","parent_name":"Continuation"},"Extensions/AsyncThrowingStream.html#/s:Scs10AsynchroneE_15bufferingPolicy_Scsyxs5Error_pGxm_Scs12ContinuationV09BufferingC0OyxsAC_p__GyAFyxsAC_p_GYactcsAC_pRs_rlufc":{"name":"init(_:bufferingPolicy:_:)","abstract":"

    Construct a AsyncThrowingStream buffering given an Element type.

    ","parent_name":"AsyncThrowingStream"},"Extensions/AsyncThrowingStream/Continuation.html":{"name":"Continuation","parent_name":"AsyncThrowingStream"},"Extensions/AsyncStream/Continuation.html#/s:ScS12ContinuationV10AsynchroneE6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Yield the provided value and then finish the stream.

    ","parent_name":"Continuation"},"Extensions/AsyncStream.html#/s:ScS10AsynchroneE_15bufferingPolicy_ScSyxGxm_ScS12ContinuationV09BufferingC0Oyx__GyAEyx_GYactcfc":{"name":"init(_:bufferingPolicy:_:)","abstract":"

    Construct a AsyncStream buffering given an Element type.

    ","parent_name":"AsyncStream"},"Extensions/AsyncStream/Continuation.html":{"name":"Continuation","parent_name":"AsyncStream"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE6assign2to2onScTyyts5Error_pGs24ReferenceWritableKeyPathCyqd__7ElementQzG_qd__tKlF":{"name":"assign(to:on:)","abstract":"

    Assigns each element from an async sequence to a property on an object.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5first7ElementQzSgyYaKF":{"name":"first()","abstract":"

    The first element of the sequence, if there is one.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE7collectySay7ElementQzGSiSgYaKF":{"name":"collect(_:)","abstract":"

    Collect elements from a sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE4sinkyScTyyts5Error_pGy7ElementQzYacF":{"name":"sink(_:)","abstract":"

    Consume the async sequence and pass the element’s to a closure.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE4sink12receiveValue0C10CompletionScTyyts5NeverOGy7ElementQzYac_yAA013AsyncSequenceE0Oys5Error_pGYactF":{"name":"sink(receiveValue:receiveCompletion:)","abstract":"

    Consume the async sequence and pass the element’s and it’s completion","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE27eraseToAnyAsyncSequenceableAA0deF0Vy7ElementQzGyF":{"name":"eraseToAnyAsyncSequenceable()","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE35eraseToAnyThrowingAsyncSequenceableAA0defG0Vy7ElementQzGyF":{"name":"eraseToAnyThrowingAsyncSequenceable()","abstract":"

    Creates a throwing type erasing async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5chain4withAA18ChainAsyncSequenceVyxqd__Gqd___tSciRd__7ElementQyd__AGRtzlF":{"name":"chain(with:)","abstract":"

    An asynchronous sequence that chains two async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE13combineLatestyAA27CombineLatest3AsyncSequenceVyxqd__qd_0_Gqd___qd_0_tSciRd__SciRd_0_r0_lF":{"name":"combineLatest(_:_:)","abstract":"

    Combine three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE13combineLatestyAA07CombineC13AsyncSequenceVyxqd__Gqd__SciRd__lF":{"name":"combineLatest(_:)","abstract":"

    Combine with an additional async sequence to produce a AsyncCombineLatest2Sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE8debounce3forAA21DebounceAsyncSequenceVyxGSd_tF":{"name":"debounce(for:)","abstract":"

    Emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5delay3forAA18DelayAsyncSequenceVyxGSd_tF":{"name":"delay(for:)","abstract":"

    Delays emission of all elements by the provided interval.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5merge4with_AA19Merge3AsyncSequenceVyxGx_xtF":{"name":"merge(with:_:)","abstract":"

    An asynchronous sequence that merges three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5merge4withAA18MergeAsyncSequenceVyxGx_tF":{"name":"merge(with:)","abstract":"

    An asynchronous sequence that merges two async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE12replaceError4withAA07ReplaceC13AsyncSequenceVyxG7ElementQz_tF":{"name":"replaceError(with:)","abstract":"

    Replaces any errors in the async sequence with the provided element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE6sharedAA19SharedAsyncSequenceVyxGyF":{"name":"shared()","abstract":"

    Creates a shareable async sequence that can be used across multiple tasks.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE8throttle3for6latestAA21ThrottleAsyncSequenceVyxGSd_SbtF":{"name":"throttle(for:latest:)","abstract":"

    Emits either the most-recent or first element emitted by the base async","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE3zipyAA17Zip3AsyncSequenceVyxqd__qd_0_Gqd___qd_0_tSciRd__SciRd_0_r0_lF":{"name":"zip(_:_:)","abstract":"

    Create an asynchronous sequence that applys a zip function to the three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE3zipyAA16ZipAsyncSequenceVyxqd__Gqd__SciRd__lF":{"name":"zip(_:)","abstract":"

    Create an asynchronous sequence that applys a zip function to the two async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneSQ7ElementRpzrlE16removeDuplicatesAA06RemoveD13AsyncSequenceVyxGyF":{"name":"removeDuplicates()","abstract":"

    Emits only elements that don’t match the previous element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneSQ7ElementRpzrlE16removeDuplicates2byAA06RemoveD13AsyncSequenceVyxGSbAC_ACtc_tF":{"name":"removeDuplicates(by:)","abstract":"

    Omits any element that the predicate determines is equal to the previous element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html":{"name":"AsyncSequence"},"Extensions/AsyncStream.html":{"name":"AsyncStream"},"Extensions/AsyncThrowingStream.html":{"name":"AsyncThrowingStream"},"Extensions/Task.html":{"name":"Task"},"Extensions/Sequence.html":{"name":"Sequence"},"Enums/AsyncSequenceCompletion.html#/s:10Asynchrone23AsyncSequenceCompletionO8finishedyACyxGAEms5ErrorRzlF":{"name":"finished","abstract":"

    The async sequence finished normally.

    ","parent_name":"AsyncSequenceCompletion"},"Enums/AsyncSequenceCompletion.html#/s:10Asynchrone23AsyncSequenceCompletionO7failureyACyxGxcAEms5ErrorRzlF":{"name":"failure(_:)","abstract":"

    The async sequence stopped emitting elements due to","parent_name":"AsyncSequenceCompletion"},"Enums/AsyncSequenceCompletion.html":{"name":"AsyncSequenceCompletion","abstract":"

    Describes how an async sequence has completed.

    "},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC8intervalACSd_tcfc":{"name":"init(interval:)","abstract":"

    Creates an async sequence that emits the current date on a given interval.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC6cancelyyF":{"name":"cancel()","abstract":"

    Cancel the sequence from emitting anymore elements.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC04makeC8IteratorScS0F0Vy10Foundation4DateV_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html":{"name":"TimerAsyncSequence","abstract":"

    An async sequence that emits the current date on a given interval.

    "},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC7elementxvp":{"name":"element","abstract":"

    The element wrapped by this async sequence, emitted as a new element whenever it changes.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceCyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC04makeD8IteratorScS0G0Vyx_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html":{"name":"CurrentElementAsyncSequence","abstract":"

    A async sequence that wraps a single value and emits a new element whenever the element changes.

    "},"Actors.html":{"name":"Actors","abstract":"

    The following actors are available globally.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/.documentation/docsets/.docset/Contents/Resources/Documents/undocumented.json b/.documentation/docsets/.docset/Contents/Resources/Documents/undocumented.json index cc8f1cb..e3dccb5 100644 --- a/.documentation/docsets/.docset/Contents/Resources/Documents/undocumented.json +++ b/.documentation/docsets/.docset/Contents/Resources/Documents/undocumented.json @@ -1,12 +1,6 @@ { "warnings": [ - { - "file": "/Users/reddavis/Documents/Projects/Asynchrone/Asynchrone/Source/Sequences/RemoveDuplicatesAsyncSequence.swift", - "line": 28, - "symbol": "RemoveDuplicatesAsyncSequence.Predicate", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - } + ], "source_directory": "/Users/reddavis/Documents/Projects/Asynchrone" } \ No newline at end of file diff --git a/.documentation/docsets/.docset/Contents/Resources/docSet.dsidx b/.documentation/docsets/.docset/Contents/Resources/docSet.dsidx index 5b93119e033216c714d17cb87db185d14a537580..7143fcb2dcacc97bc224b70ef70a9ca37b6d743f 100644 GIT binary patch delta 5489 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 (V?@58Pf? z<908DLaL=2EJ0Q}R&$ww+#WzD}OdNdf7Ynr{s-zt*`z(xW2JD|K)oR;l zL~6A;M)fsFp5ssd*HW#dl_uG=W=^JQ>c#RX~N5W3o47^O-986ZUoHV~+4n>Kwt2V+xkrD_<*r zXUaoxAmODhd=5^(^pfI;FptS3?oPq{W1|{$*e~KnCDq%~kpgB950e@3u#?| zM27?|L+C{x1+mBXDbYbe&E)VRu3S1k5`sos#lXp-zV5w=^U?D{D5*6B7v*(ywAt(q ztJmxHf>==e;Y10A4#4(Teoh=J<<(Za8zx_GC%*7z+Ma9r*Y;t&_?qV8cFgQ%W(ckj z@!bIQ9R!yui-p!pyS+8sUqp1S71W?NYvj9o5c3d+fbZfV1V%S#CVG+c3E3mm%QODh+R z7s{%Uu0{KicCF@3jY)k`9j*!}?+^m~&#ami6dl}ua?i70OnH9Guzpg2Nrl~TF{!<@ z@Q-g86li}yEbz)HG5i^{kJx|*Vd#0hPE`G=Oi3~^u7iP#(I6)CkRFw+vTPHa`(ZOz z9}taFgh_t(UUR)!Pq8v_qE4K6f|xCR1|I)yVipI#h#OTT%oyD*iGwd)EjR_HM^h!L zI?F=CpJ1VBf>Qi-8-_d0$*^u$&cyUQ_`_S_I1^0Mgo@6RYLhd=k}cwIENw%&4(%7( zX3aaA1DYC*QvHegsyajUnyN`fDUT>q6-N~txqFLJdFX_wlKH4_r zG19UH!a}(Hej<}hqxk4FIFl7erjj7`gT#tN8j-I;-~LgEAQX+rSD|nFD6~dcK&YL* ze)gl#V#S~kFVXkSguVx4J|PY^-0Z|gc>iWMHb}JP=CD`c6G$aTVyF^6H@jq=LJU;h z>c-LV?yY>e5Gq8GjevQO1)FdrIDM6iQHm z{`et+2MFmnVunrH&$Q#(7|nk5pVeN~Cn~%0ma#ybr5I$Qz+DXFu(ijb`7(Ia>@tT_nW+TG&L@)@`M79NRf;p2njcq4cY z4HBMf-g6Y6CT%?29QJXOJ|>M9@+fEzwo>RM{QIHx+zJn22|_%caO@&=;6EIG6)*f> Dp8L;? delta 4028 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 bCvBu(M&~s*NO=ER7iT7^%98h}ED8Gu3Fzum diff --git a/.documentation/docsets/.tgz b/.documentation/docsets/.tgz index aed11463d23772f029c20d4f519d1e3cc5762371..4389342f8b743dd362fe52546dab0e69b26c5af2 100644 GIT binary patch literal 120855 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�PA(yhW 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 exME=Q+#8) – Continuation + @@ -90,6 +93,9 @@ + @@ -126,6 +132,12 @@ + + @@ -207,7 +219,7 @@

    First

    continuation.finish() } -print(await sequence.first()) +print(await sequence.first()) // Prints: // 1 @@ -220,7 +232,7 @@

    Collect

    continuation.finish() } -print(await sequence.collect()) +print(await sequence.collect()) // Prints: // [1, 2, 3] @@ -268,6 +280,43 @@

    ChainAsyncSequenceable

    +
    let sequenceA = AsyncStream<Int> { continuation in
    +    continuation.yield(1)
    +    continuation.yield(2)
    +    continuation.yield(3)
    +    continuation.finish()
    +}
    +
    +let sequenceB = AsyncStream<Int> { continuation in
    +    continuation.yield(4)
    +    continuation.yield(5)
    +    continuation.yield(6)
    +    continuation.finish()
    +}
    +
    +let sequenceC = AsyncStream<Int> { continuation in
    +    continuation.yield(7)
    +    continuation.yield(8)
    +    continuation.yield(9)
    +    continuation.finish()
    +}
    +
    +for await value in sequenceA.chain(with: sequenceB).chain(with: sequenceC) {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +// 4
    +// 5
    +// 6
    +// 7
    +// 8
    +// 9
    +

    CombineLatestAsyncSequence

    let streamA = .init { continuation in
         continuation.yield(1)
    @@ -286,7 +335,7 @@ 

    continuation.finish() } -for await value in streamA.combineLatest(streamB, streamC) { +for await value in streamA.combineLatest(streamB, streamC) { print(value) } @@ -334,15 +383,15 @@

    CurrentElementAsyncSequence

    let sequence = CurrentElementAsyncSequence(0)
    -print(await sequence.element)
    +print(await sequence.element)
     
    -await stream.yield(1)
    -print(await sequence.element)
    +await stream.yield(1)
    +print(await sequence.element)
     
    -await stream.yield(2)
    -await stream.yield(3)
    -await stream.yield(4)
    -print(await sequence.element)
    +await stream.yield(2)
    +await stream.yield(3)
    +await stream.yield(4)
    +print(await sequence.element)
     
     // Prints:
     // 0
    @@ -352,9 +401,9 @@ 

    DebounceAsyncSequence

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 200_000_000)
    +    try? await Task.sleep(nanoseconds: 200_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -362,7 +411,7 @@ 

    } let start = Date.now -for element in try await self.stream.delay(for: 0.5) { +for element in try await self.stream.delay(for: 0.5) { print("\(element) - \(Date.now.timeIntervalSince(start))") } @@ -410,7 +459,7 @@

    let stream = Fail<Int, TestError>(error: TestError()) do { - for try await value in stream { + for try await value in stream { print(value) } } catch { @@ -423,7 +472,7 @@

    Just

    let stream = Just(1)
     
    -for await value in stream {
    +for await value in stream {
         print(value)
     }
     
    @@ -448,7 +497,7 @@ 

    continuation.finish() } -for await value in self.streamA.merge(with: self.streamB, self.streamC) { +for await value in self.streamA.merge(with: self.streamB, self.streamC) { print(value) } @@ -497,7 +546,7 @@

    continuation.finish() } -for await value in stream.removeDuplicates() { +for await value in stream.removeDuplicates() { print(value) } @@ -530,13 +579,25 @@

    SequenceAsyncSequence

    +
    let sequence = [0, 1, 2, 3].async
    +
    +for await value in sequence {
    +    print(value)
    +}
    +
    +// Prints:
    +// 1
    +// 2
    +// 3
    +

    SharedAsyncSequence

    let values = [
         "a",
    @@ -554,24 +615,24 @@ 

    ThrottleAsyncSequence

    let stream = AsyncStream<Int> { continuation in
         continuation.yield(0)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(1)
    -    try? await Task.sleep(nanoseconds: 100_000_000)
    +    try? await Task.sleep(nanoseconds: 100_000_000)
         continuation.yield(2)
         continuation.yield(3)
         continuation.yield(4)
    @@ -579,7 +640,7 @@ 

    sequence.finish(throwing: TestError()) do { - for try await value in sequence { + for try await value in sequence { print(value) } } catch { @@ -614,7 +675,7 @@

    continuation.finish() } -for await value in streamA.zip(streamB) { +for await value in streamA.zip(streamB) { print(value) } @@ -665,7 +726,7 @@

    AsyncThrowingStream.Co diff --git a/.documentation/search.json b/.documentation/search.json index 207daf4..d182d2f 100644 --- a/.documentation/search.json +++ b/.documentation/search.json @@ -1 +1 @@ -{"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ZipAsyncSequence"},"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV04makeC8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ZipAsyncSequence"},"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV4next7ElementQz_AEQy_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ZipAsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"Zip3AsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV04makeC8IteratorACyxq_q0_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Zip3AsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV4next7ElementQz_AEQy_AEQy0_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Zip3AsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceVACyxGycfc":{"name":"init()","abstract":"

    Creates an async sequence that broadcasts elements.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV04makeD8IteratorScs0G0Vyxs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finish8throwingys5Error_p_tF":{"name":"finish(throwing:)","abstract":"

    Mark the sequence as finished by having it’s iterator throw the provided error.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV_8interval6latestACyxGx_SdSbtcfc":{"name":"init(_:interval:latest:)","abstract":"

    Creates an async sequence that emits either the most-recent or first element","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV0C8Iteratora":{"name":"AsyncIterator","abstract":"

    The type of async iterator.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The type of elements streamed.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceVyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates a shareable async sequence that can be used across multiple tasks.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV5yieldyyqd__YaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finishyyYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finish4withyqd___tYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV7elementqd__yYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"element()","abstract":"

    The element wrapped by this async sequence, emitted as a new element whenever it changes.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV5yieldyyqd__AA011PassthroughcD0Vyqd__GRszlF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finishyyAA011PassthroughcD0Vyqd__GRszlF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finish4withyqd___tAA011PassthroughcD0Vyqd__GRszlF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV4base6outputACyxGx_7ElementQztcfc":{"name":"init(base:output:)","abstract":"

    Creates an async sequence that replaces any errors in the sequence with a provided element.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV4next7ElementQzSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV9Predicatea":{"name":"Predicate","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV4base9predicateACyxGx_Sb7ElementQz_AHtctcfc":{"name":"init(base:predicate:)","abstract":"

    Creates an async that only emits elements that don’t match the previous element,","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceVACyxGycfc":{"name":"init()","abstract":"

    Creates an async sequence that broadcasts elements.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV04makeC8IteratorScS0F0Vyx_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceVyACyxGx_xtcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that merges the provided async sequence’s.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV04makeC8IteratorScS0F0Vy7ElementQz_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"MergeAsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceVyACyxGx_xxtcfc":{"name":"init(_:_:_:)","abstract":"

    Creates an async sequence that merges the provided async sequence’s.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Just.html#/s:10Asynchrone4JustVyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that emits an element once.

    ","parent_name":"Just"},"Structs/Just.html#/s:10Asynchrone4JustV17makeAsyncIteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Just"},"Structs/Just.html#/s:10Asynchrone4JustV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Just"},"Structs/Fail.html#/s:10Asynchrone4FailV5errorACyxq_Gq__tcfc":{"name":"init(error:)","abstract":"

    Creates an async sequence that throws an error.

    ","parent_name":"Fail"},"Structs/Fail.html#/s:10Asynchrone4FailV17makeAsyncIteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Fail"},"Structs/Fail.html#/s:10Asynchrone4FailV4nextxSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Fail"},"Structs/Empty.html#/s:10Asynchrone5EmptyV19completeImmediatelyACyxGSb_tcfc":{"name":"init(completeImmediately:)","abstract":"

    Creates an empty async sequence.

    ","parent_name":"Empty"},"Structs/Empty.html#/s:10Asynchrone5EmptyV17makeAsyncIteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Empty"},"Structs/Empty.html#/s:10Asynchrone5EmptyV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Empty"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV_8intervalACyxGx_Sdtcfc":{"name":"init(_:interval:)","abstract":"

    Creates an async sequence that delays emission of elements and completion.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV04makeC8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"DelayAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV_7dueTimeACyxGx_Sdtcfc":{"name":"init(_:dueTime:)","abstract":"

    Creates an async sequence that emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"DebounceAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceVyACyxq_Gx_q_tcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that only emits elements that don’t match the previous element,","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV04makeD8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV4next7ElementQz_AEQy_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceVyACyxq_q0_Gx_q_q0_tcfc":{"name":"init(_:_:_:)","abstract":"

    Creates an async sequence that only emits elements that don’t match the previous element,","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV04makeD8IteratorACyxq_q0_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV4next7ElementQz_AEQy_AEQy0_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableVyACyxGqd__c7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableVyACyxGSgqd__Sgc7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates an optional type erasing async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableV4nextxSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableVyACyxGqd__c7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableVyACyxGSgqd__Sgc7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates an optional type erasing async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableV04makeC8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html":{"name":"AnyAsyncSequenceable","abstract":"

    An async sequence that performs type erasure by wrapping another async sequence.

    "},"Structs/AnyThrowingAsyncSequenceable.html":{"name":"AnyThrowingAsyncSequenceable","abstract":"

    A throwing async sequence that performs type erasure by wrapping another throwing async sequence.

    "},"Structs/CombineLatest3AsyncSequence.html":{"name":"CombineLatest3AsyncSequence","abstract":"

    An asynchronous sequence that combines three async sequences.

    "},"Structs/CombineLatestAsyncSequence.html":{"name":"CombineLatestAsyncSequence","abstract":"

    An asynchronous sequence that combines two async sequences.

    "},"Structs/DebounceAsyncSequence.html":{"name":"DebounceAsyncSequence","abstract":"

    A async sequence that emits elements only after a specified time interval elapses between emissions.

    "},"Structs/DelayAsyncSequence.html":{"name":"DelayAsyncSequence","abstract":"

    Delays emission of all elements by the provided interval.

    "},"Structs/Empty.html":{"name":"Empty","abstract":"

    An asynchronous sequence that only emits the provided value once.

    "},"Structs/Fail.html":{"name":"Fail","abstract":"

    An asynchronous sequence that immediately throws an error when iterated.

    "},"Structs/Just.html":{"name":"Just","abstract":"

    An asynchronous sequence that only emits the provided value once.

    "},"Structs/Merge3AsyncSequence.html":{"name":"Merge3AsyncSequence","abstract":"

    An asynchronous sequence that merges three async sequences.

    "},"Structs/MergeAsyncSequence.html":{"name":"MergeAsyncSequence","abstract":"

    An asynchronous sequence that merges two async sequences.

    "},"Structs/PassthroughAsyncSequence.html":{"name":"PassthroughAsyncSequence","abstract":"

    A async sequence that broadcasts elements.

    "},"Structs/RemoveDuplicatesAsyncSequence.html":{"name":"RemoveDuplicatesAsyncSequence","abstract":"

    An asynchronous sequence that streams only elements from the base asynchronous sequence"},"Structs/ReplaceErrorAsyncSequence.html":{"name":"ReplaceErrorAsyncSequence","abstract":"

    An async sequence that replaces any errors in the sequence with a provided element.

    "},"Structs/SharedAsyncSequence.html":{"name":"SharedAsyncSequence","abstract":"

    An async sequence that can be shared between multiple tasks.

    "},"Structs/ThrottleAsyncSequence.html":{"name":"ThrottleAsyncSequence","abstract":"

    An async sequence that emits either the most-recent or first element emitted"},"Structs/ThrowingPassthroughAsyncSequence.html":{"name":"ThrowingPassthroughAsyncSequence","abstract":"

    A async sequence that broadcasts elements.

    "},"Structs/Zip3AsyncSequence.html":{"name":"Zip3AsyncSequence","abstract":"

    An asynchronous sequence that applys a zip function to the three async sequences.

    "},"Structs/ZipAsyncSequence.html":{"name":"ZipAsyncSequence","abstract":"

    An asynchronous sequence that applys a zip function to the two async sequences.

    "},"Extensions/Task.html#/s:ScT10Asynchrones5NeverORszACRs_rlE5sleep7secondsySd_tYaKFZ":{"name":"sleep(seconds:)","abstract":"

    Suspends the current task for at least the given duration in seconds.

    ","parent_name":"Task"},"Extensions/AsyncThrowingStream/Continuation.html#/s:Scs12ContinuationV10AsynchroneE6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Yield the provided value and then finish the stream.

    ","parent_name":"Continuation"},"Extensions/AsyncThrowingStream.html#/s:Scs10AsynchroneE_15bufferingPolicy_Scsyxs5Error_pGxm_Scs12ContinuationV09BufferingC0OyxsAC_p__GyAFyxsAC_p_GYactcsAC_pRs_rlufc":{"name":"init(_:bufferingPolicy:_:)","abstract":"

    Construct a AsyncThrowingStream buffering given an Element type.

    ","parent_name":"AsyncThrowingStream"},"Extensions/AsyncThrowingStream/Continuation.html":{"name":"Continuation","parent_name":"AsyncThrowingStream"},"Extensions/AsyncStream/Continuation.html#/s:ScS12ContinuationV10AsynchroneE6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Yield the provided value and then finish the stream.

    ","parent_name":"Continuation"},"Extensions/AsyncStream.html#/s:ScS10AsynchroneE_15bufferingPolicy_ScSyxGxm_ScS12ContinuationV09BufferingC0Oyx__GyAEyx_GYactcfc":{"name":"init(_:bufferingPolicy:_:)","abstract":"

    Construct a AsyncStream buffering given an Element type.

    ","parent_name":"AsyncStream"},"Extensions/AsyncStream/Continuation.html":{"name":"Continuation","parent_name":"AsyncStream"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE6assign2to2onScTyyts5Error_pGs24ReferenceWritableKeyPathCyqd__7ElementQzG_qd__tKlF":{"name":"assign(to:on:)","abstract":"

    Assigns each element from an async sequence to a property on an object.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5first7ElementQzSgyYaKF":{"name":"first()","abstract":"

    The first element of the sequence, if there is one.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE7collectySay7ElementQzGSiSgYaKF":{"name":"collect(_:)","abstract":"

    Collect elements from a sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE4sinkyScTyyts5Error_pGy7ElementQzYacF":{"name":"sink(_:)","abstract":"

    Consume the async sequence and pass the element’s to a closure.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE4sink12receiveValue0C10CompletionScTyyts5NeverOGy7ElementQzYac_yAA013AsyncSequenceE0Oys5Error_pGYactF":{"name":"sink(receiveValue:receiveCompletion:)","abstract":"

    Consume the async sequence and pass the element’s and it’s completion","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE27eraseToAnyAsyncSequenceableAA0deF0Vy7ElementQzGyF":{"name":"eraseToAnyAsyncSequenceable()","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE35eraseToAnyThrowingAsyncSequenceableAA0defG0Vy7ElementQzGyF":{"name":"eraseToAnyThrowingAsyncSequenceable()","abstract":"

    Creates a throwing type erasing async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE13combineLatestyAA27CombineLatest3AsyncSequenceVyxqd__qd_0_Gqd___qd_0_tSciRd__SciRd_0_r0_lF":{"name":"combineLatest(_:_:)","abstract":"

    Combine three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE13combineLatestyAA07CombineC13AsyncSequenceVyxqd__Gqd__SciRd__lF":{"name":"combineLatest(_:)","abstract":"

    Combine with an additional async sequence to produce a AsyncCombineLatest2Sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE8debounce3forAA21DebounceAsyncSequenceVyxGSd_tF":{"name":"debounce(for:)","abstract":"

    Emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5delay3forAA18DelayAsyncSequenceVyxGSd_tF":{"name":"delay(for:)","abstract":"

    Delays emission of all elements by the provided interval.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5merge4with_AA19Merge3AsyncSequenceVyxGx_xtF":{"name":"merge(with:_:)","abstract":"

    An asynchronous sequence that merges three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5merge4withAA18MergeAsyncSequenceVyxGx_tF":{"name":"merge(with:)","abstract":"

    An asynchronous sequence that merges two async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE12replaceError4withAA07ReplaceC13AsyncSequenceVyxG7ElementQz_tF":{"name":"replaceError(with:)","abstract":"

    Replaces any errors in the async sequence with the provided element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE6sharedAA19SharedAsyncSequenceVyxGyF":{"name":"shared()","abstract":"

    Creates a shareable async sequence that can be used across multiple tasks.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE8throttle3for6latestAA21ThrottleAsyncSequenceVyxGSd_SbtF":{"name":"throttle(for:latest:)","abstract":"

    Emits either the most-recent or first element emitted by the base async","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE3zipyAA17Zip3AsyncSequenceVyxqd__qd_0_Gqd___qd_0_tSciRd__SciRd_0_r0_lF":{"name":"zip(_:_:)","abstract":"

    Create an asynchronous sequence that applys a zip function to the three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE3zipyAA16ZipAsyncSequenceVyxqd__Gqd__SciRd__lF":{"name":"zip(_:)","abstract":"

    Create an asynchronous sequence that applys a zip function to the two async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneSQ7ElementRpzrlE16removeDuplicatesAA06RemoveD13AsyncSequenceVyxGyF":{"name":"removeDuplicates()","abstract":"

    Emits only elements that don’t match the previous element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneSQ7ElementRpzrlE16removeDuplicates2byAA06RemoveD13AsyncSequenceVyxGSbAC_ACtc_tF":{"name":"removeDuplicates(by:)","abstract":"

    Omits any element that the predicate determines is equal to the previous element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html":{"name":"AsyncSequence"},"Extensions/AsyncStream.html":{"name":"AsyncStream"},"Extensions/AsyncThrowingStream.html":{"name":"AsyncThrowingStream"},"Extensions/Task.html":{"name":"Task"},"Enums/AsyncSequenceCompletion.html#/s:10Asynchrone23AsyncSequenceCompletionO8finishedyACyxGAEms5ErrorRzlF":{"name":"finished","abstract":"

    The async sequence finished normally.

    ","parent_name":"AsyncSequenceCompletion"},"Enums/AsyncSequenceCompletion.html#/s:10Asynchrone23AsyncSequenceCompletionO7failureyACyxGxcAEms5ErrorRzlF":{"name":"failure(_:)","abstract":"

    The async sequence stopped emitting elements due to","parent_name":"AsyncSequenceCompletion"},"Enums/AsyncSequenceCompletion.html":{"name":"AsyncSequenceCompletion","abstract":"

    Describes how an async sequence has completed.

    "},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC8intervalACSd_tcfc":{"name":"init(interval:)","abstract":"

    Creates an async sequence that emits the current date on a given interval.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC6cancelyyF":{"name":"cancel()","abstract":"

    Cancel the sequence from emitting anymore elements.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC04makeC8IteratorScS0F0Vy10Foundation4DateV_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html":{"name":"TimerAsyncSequence","abstract":"

    An async sequence that emits the current date on a given interval.

    "},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC7elementxvp":{"name":"element","abstract":"

    The element wrapped by this async sequence, emitted as a new element whenever it changes.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceCyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC04makeD8IteratorScS0G0Vyx_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html":{"name":"CurrentElementAsyncSequence","abstract":"

    A async sequence that wraps a single value and emits a new element whenever the element changes.

    "},"Actors.html":{"name":"Actors","abstract":"

    The following actors are available globally.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ZipAsyncSequence"},"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV04makeC8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ZipAsyncSequence"},"Structs/ZipAsyncSequence.html#/s:10Asynchrone16ZipAsyncSequenceV4next7ElementQz_AEQy_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ZipAsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"Zip3AsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV04makeC8IteratorACyxq_q0_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Zip3AsyncSequence"},"Structs/Zip3AsyncSequence.html#/s:10Asynchrone17Zip3AsyncSequenceV4next7ElementQz_AEQy_AEQy0_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Zip3AsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceVACyxGycfc":{"name":"init()","abstract":"

    Creates an async sequence that broadcasts elements.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV04makeD8IteratorScs0G0Vyxs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finish8throwingys5Error_p_tF":{"name":"finish(throwing:)","abstract":"

    Mark the sequence as finished by having it’s iterator throw the provided error.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrowingPassthroughAsyncSequence.html#/s:10Asynchrone32ThrowingPassthroughAsyncSequenceV6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"ThrowingPassthroughAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV_8interval6latestACyxGx_SdSbtcfc":{"name":"init(_:interval:latest:)","abstract":"

    Creates an async sequence that emits either the most-recent or first element","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/ThrottleAsyncSequence.html#/s:10Asynchrone21ThrottleAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ThrottleAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV0C8Iteratora":{"name":"AsyncIterator","abstract":"

    The type of async iterator.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The type of elements streamed.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceVyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates a shareable async sequence that can be used across multiple tasks.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV5yieldyyqd__YaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finishyyYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finish4withyqd___tYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV7elementqd__yYaAA014CurrentElementcD0Cyqd__GRszlF":{"name":"element()","abstract":"

    The element wrapped by this async sequence, emitted as a new element whenever it changes.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV5yieldyyqd__AA011PassthroughcD0Vyqd__GRszlF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finishyyAA011PassthroughcD0Vyqd__GRszlF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SharedAsyncSequence.html#/s:10Asynchrone19SharedAsyncSequenceV6finish4withyqd___tAA011PassthroughcD0Vyqd__GRszlF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"SharedAsyncSequence"},"Structs/SequenceAsyncSequenceIterator.html#/s:10Asynchrone013SequenceAsyncB8IteratorVyACyxG0D0Qzcfc":{"name":"init(_:)","parent_name":"SequenceAsyncSequenceIterator"},"Structs/SequenceAsyncSequenceIterator.html#/s:10Asynchrone013SequenceAsyncB8IteratorV4next7ElementQzSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"SequenceAsyncSequenceIterator"},"Structs/SequenceAsyncSequence.html#/s:10Asynchrone013SequenceAsyncB0V7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"SequenceAsyncSequence"},"Structs/SequenceAsyncSequence.html#/s:10Asynchrone013SequenceAsyncB0VyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that combines the two async sequence.

    ","parent_name":"SequenceAsyncSequence"},"Structs/SequenceAsyncSequence.html#/s:10Asynchrone013SequenceAsyncB0V04makeC8IteratorAA0bcbE0VyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"SequenceAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV4base6outputACyxGx_7ElementQztcfc":{"name":"init(base:output:)","abstract":"

    Creates an async sequence that replaces any errors in the sequence with a provided element.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/ReplaceErrorAsyncSequence.html#/s:10Asynchrone25ReplaceErrorAsyncSequenceV4next7ElementQzSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ReplaceErrorAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV9Predicatea":{"name":"Predicate","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV4base9predicateACyxGx_Sb7ElementQz_AHtctcfc":{"name":"init(base:predicate:)","abstract":"

    Creates an async that only emits elements that don’t match the previous element,","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/RemoveDuplicatesAsyncSequence.html#/s:10Asynchrone29RemoveDuplicatesAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"RemoveDuplicatesAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceVACyxGycfc":{"name":"init()","abstract":"

    Creates an async sequence that broadcasts elements.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV04makeC8IteratorScS0F0Vyx_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/PassthroughAsyncSequence.html#/s:10Asynchrone24PassthroughAsyncSequenceV6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"PassthroughAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceVyACyxGx_xtcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that merges the provided async sequence’s.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV04makeC8IteratorScS0F0Vy7ElementQz_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"MergeAsyncSequence"},"Structs/MergeAsyncSequence.html#/s:10Asynchrone18MergeAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"MergeAsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceVyACyxGx_xxtcfc":{"name":"init(_:_:_:)","abstract":"

    Creates an async sequence that merges the provided async sequence’s.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Merge3AsyncSequence.html#/s:10Asynchrone19Merge3AsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Merge3AsyncSequence"},"Structs/Just.html#/s:10Asynchrone4JustVyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that emits an element once.

    ","parent_name":"Just"},"Structs/Just.html#/s:10Asynchrone4JustV17makeAsyncIteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Just"},"Structs/Just.html#/s:10Asynchrone4JustV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Just"},"Structs/Fail.html#/s:10Asynchrone4FailV5errorACyxq_Gq__tcfc":{"name":"init(error:)","abstract":"

    Creates an async sequence that throws an error.

    ","parent_name":"Fail"},"Structs/Fail.html#/s:10Asynchrone4FailV17makeAsyncIteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Fail"},"Structs/Fail.html#/s:10Asynchrone4FailV4nextxSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Fail"},"Structs/Empty.html#/s:10Asynchrone5EmptyV19completeImmediatelyACyxGSb_tcfc":{"name":"init(completeImmediately:)","abstract":"

    Creates an empty async sequence.

    ","parent_name":"Empty"},"Structs/Empty.html#/s:10Asynchrone5EmptyV17makeAsyncIteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"Empty"},"Structs/Empty.html#/s:10Asynchrone5EmptyV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"Empty"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV_8intervalACyxGx_Sdtcfc":{"name":"init(_:interval:)","abstract":"

    Creates an async sequence that delays emission of elements and completion.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV04makeC8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"DelayAsyncSequence"},"Structs/DelayAsyncSequence.html#/s:10Asynchrone18DelayAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"DelayAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV_7dueTimeACyxGx_Sdtcfc":{"name":"init(_:dueTime:)","abstract":"

    Creates an async sequence that emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV04makeC8IteratorScs0F0Vy7ElementQzs5Error_p_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"DebounceAsyncSequence"},"Structs/DebounceAsyncSequence.html#/s:10Asynchrone21DebounceAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"DebounceAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceVyACyxq_Gx_q_tcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that only emits elements that don’t match the previous element,","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV04makeD8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatestAsyncSequence.html#/s:10Asynchrone26CombineLatestAsyncSequenceV4next7ElementQz_AEQy_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"CombineLatestAsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceVyACyxq_q0_Gx_q_q0_tcfc":{"name":"init(_:_:_:)","abstract":"

    Creates an async sequence that only emits elements that don’t match the previous element,","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV04makeD8IteratorACyxq_q0_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/CombineLatest3AsyncSequence.html#/s:10Asynchrone27CombineLatest3AsyncSequenceV4next7ElementQz_AEQy_AEQy0_tSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"CombineLatest3AsyncSequence"},"Structs/ChainAsyncSequence.html#/s:10Asynchrone18ChainAsyncSequenceV7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"ChainAsyncSequence"},"Structs/ChainAsyncSequence.html#/s:10Asynchrone18ChainAsyncSequenceVyACyxq_Gx_q_tcfc":{"name":"init(_:_:)","abstract":"

    Creates an async sequence that combines the two async sequence.

    ","parent_name":"ChainAsyncSequence"},"Structs/ChainAsyncSequence.html#/s:10Asynchrone18ChainAsyncSequenceV04makeC8IteratorACyxq_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"ChainAsyncSequence"},"Structs/ChainAsyncSequence.html#/s:10Asynchrone18ChainAsyncSequenceV4next7ElementQzSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"ChainAsyncSequence"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableVyACyxGqd__c7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableVyACyxGSgqd__Sgc7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates an optional type erasing async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableV04makeD8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyThrowingAsyncSequenceable.html#/s:10Asynchrone28AnyThrowingAsyncSequenceableV4nextxSgyYaKF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"AnyThrowingAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableVyACyxGqd__c7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableVyACyxGSgqd__Sgc7ElementQyd__RszSciRd__lufc":{"name":"init(_:)","abstract":"

    Creates an optional type erasing async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableV04makeC8IteratorACyxGyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html#/s:10Asynchrone20AnyAsyncSequenceableV4nextxSgyYaF":{"name":"next()","abstract":"

    Produces the next element in the sequence.

    ","parent_name":"AnyAsyncSequenceable"},"Structs/AnyAsyncSequenceable.html":{"name":"AnyAsyncSequenceable","abstract":"

    An async sequence that performs type erasure by wrapping another async sequence.

    "},"Structs/AnyThrowingAsyncSequenceable.html":{"name":"AnyThrowingAsyncSequenceable","abstract":"

    A throwing async sequence that performs type erasure by wrapping another throwing async sequence.

    "},"Structs/ChainAsyncSequence.html":{"name":"ChainAsyncSequence","abstract":"

    An asynchronous sequence that chains two async sequences.

    "},"Structs/CombineLatest3AsyncSequence.html":{"name":"CombineLatest3AsyncSequence","abstract":"

    An asynchronous sequence that combines three async sequences.

    "},"Structs/CombineLatestAsyncSequence.html":{"name":"CombineLatestAsyncSequence","abstract":"

    An asynchronous sequence that combines two async sequences.

    "},"Structs/DebounceAsyncSequence.html":{"name":"DebounceAsyncSequence","abstract":"

    A async sequence that emits elements only after a specified time interval elapses between emissions.

    "},"Structs/DelayAsyncSequence.html":{"name":"DelayAsyncSequence","abstract":"

    Delays emission of all elements by the provided interval.

    "},"Structs/Empty.html":{"name":"Empty","abstract":"

    An asynchronous sequence that only emits the provided value once.

    "},"Structs/Fail.html":{"name":"Fail","abstract":"

    An asynchronous sequence that immediately throws an error when iterated.

    "},"Structs/Just.html":{"name":"Just","abstract":"

    An asynchronous sequence that only emits the provided value once.

    "},"Structs/Merge3AsyncSequence.html":{"name":"Merge3AsyncSequence","abstract":"

    An asynchronous sequence that merges three async sequences.

    "},"Structs/MergeAsyncSequence.html":{"name":"MergeAsyncSequence","abstract":"

    An asynchronous sequence that merges two async sequences.

    "},"Structs/PassthroughAsyncSequence.html":{"name":"PassthroughAsyncSequence","abstract":"

    A async sequence that broadcasts elements.

    "},"Structs/RemoveDuplicatesAsyncSequence.html":{"name":"RemoveDuplicatesAsyncSequence","abstract":"

    An asynchronous sequence that streams only elements from the base asynchronous sequence"},"Structs/ReplaceErrorAsyncSequence.html":{"name":"ReplaceErrorAsyncSequence","abstract":"

    An async sequence that replaces any errors in the sequence with a provided element.

    "},"Structs/SequenceAsyncSequence.html":{"name":"SequenceAsyncSequence","abstract":"

    An async version of Sequence. Generally used to turn any Sequence into"},"Structs/SequenceAsyncSequenceIterator.html":{"name":"SequenceAsyncSequenceIterator"},"Structs/SharedAsyncSequence.html":{"name":"SharedAsyncSequence","abstract":"

    An async sequence that can be shared between multiple tasks.

    "},"Structs/ThrottleAsyncSequence.html":{"name":"ThrottleAsyncSequence","abstract":"

    An async sequence that emits either the most-recent or first element emitted"},"Structs/ThrowingPassthroughAsyncSequence.html":{"name":"ThrowingPassthroughAsyncSequence","abstract":"

    A async sequence that broadcasts elements.

    "},"Structs/Zip3AsyncSequence.html":{"name":"Zip3AsyncSequence","abstract":"

    An asynchronous sequence that applys a zip function to the three async sequences.

    "},"Structs/ZipAsyncSequence.html":{"name":"ZipAsyncSequence","abstract":"

    An asynchronous sequence that applys a zip function to the two async sequences.

    "},"Extensions/Sequence.html#/s:ST10AsynchroneE5asyncAA013SequenceAsyncC0VyxGvp":{"name":"async","abstract":"

    An async sequence that contains all the elements of","parent_name":"Sequence"},"Extensions/Task.html#/s:ScT10Asynchrones5NeverORszACRs_rlE5sleep7secondsySd_tYaKFZ":{"name":"sleep(seconds:)","abstract":"

    Suspends the current task for at least the given duration in seconds.

    ","parent_name":"Task"},"Extensions/AsyncThrowingStream/Continuation.html#/s:Scs12ContinuationV10AsynchroneE6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Yield the provided value and then finish the stream.

    ","parent_name":"Continuation"},"Extensions/AsyncThrowingStream.html#/s:Scs10AsynchroneE_15bufferingPolicy_Scsyxs5Error_pGxm_Scs12ContinuationV09BufferingC0OyxsAC_p__GyAFyxsAC_p_GYactcsAC_pRs_rlufc":{"name":"init(_:bufferingPolicy:_:)","abstract":"

    Construct a AsyncThrowingStream buffering given an Element type.

    ","parent_name":"AsyncThrowingStream"},"Extensions/AsyncThrowingStream/Continuation.html":{"name":"Continuation","parent_name":"AsyncThrowingStream"},"Extensions/AsyncStream/Continuation.html#/s:ScS12ContinuationV10AsynchroneE6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Yield the provided value and then finish the stream.

    ","parent_name":"Continuation"},"Extensions/AsyncStream.html#/s:ScS10AsynchroneE_15bufferingPolicy_ScSyxGxm_ScS12ContinuationV09BufferingC0Oyx__GyAEyx_GYactcfc":{"name":"init(_:bufferingPolicy:_:)","abstract":"

    Construct a AsyncStream buffering given an Element type.

    ","parent_name":"AsyncStream"},"Extensions/AsyncStream/Continuation.html":{"name":"Continuation","parent_name":"AsyncStream"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE6assign2to2onScTyyts5Error_pGs24ReferenceWritableKeyPathCyqd__7ElementQzG_qd__tKlF":{"name":"assign(to:on:)","abstract":"

    Assigns each element from an async sequence to a property on an object.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5first7ElementQzSgyYaKF":{"name":"first()","abstract":"

    The first element of the sequence, if there is one.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE7collectySay7ElementQzGSiSgYaKF":{"name":"collect(_:)","abstract":"

    Collect elements from a sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE4sinkyScTyyts5Error_pGy7ElementQzYacF":{"name":"sink(_:)","abstract":"

    Consume the async sequence and pass the element’s to a closure.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE4sink12receiveValue0C10CompletionScTyyts5NeverOGy7ElementQzYac_yAA013AsyncSequenceE0Oys5Error_pGYactF":{"name":"sink(receiveValue:receiveCompletion:)","abstract":"

    Consume the async sequence and pass the element’s and it’s completion","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE27eraseToAnyAsyncSequenceableAA0deF0Vy7ElementQzGyF":{"name":"eraseToAnyAsyncSequenceable()","abstract":"

    Creates a type erasing async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE35eraseToAnyThrowingAsyncSequenceableAA0defG0Vy7ElementQzGyF":{"name":"eraseToAnyThrowingAsyncSequenceable()","abstract":"

    Creates a throwing type erasing async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5chain4withAA18ChainAsyncSequenceVyxqd__Gqd___tSciRd__7ElementQyd__AGRtzlF":{"name":"chain(with:)","abstract":"

    An asynchronous sequence that chains two async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE13combineLatestyAA27CombineLatest3AsyncSequenceVyxqd__qd_0_Gqd___qd_0_tSciRd__SciRd_0_r0_lF":{"name":"combineLatest(_:_:)","abstract":"

    Combine three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE13combineLatestyAA07CombineC13AsyncSequenceVyxqd__Gqd__SciRd__lF":{"name":"combineLatest(_:)","abstract":"

    Combine with an additional async sequence to produce a AsyncCombineLatest2Sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE8debounce3forAA21DebounceAsyncSequenceVyxGSd_tF":{"name":"debounce(for:)","abstract":"

    Emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5delay3forAA18DelayAsyncSequenceVyxGSd_tF":{"name":"delay(for:)","abstract":"

    Delays emission of all elements by the provided interval.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5merge4with_AA19Merge3AsyncSequenceVyxGx_xtF":{"name":"merge(with:_:)","abstract":"

    An asynchronous sequence that merges three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE5merge4withAA18MergeAsyncSequenceVyxGx_tF":{"name":"merge(with:)","abstract":"

    An asynchronous sequence that merges two async sequence.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE12replaceError4withAA07ReplaceC13AsyncSequenceVyxG7ElementQz_tF":{"name":"replaceError(with:)","abstract":"

    Replaces any errors in the async sequence with the provided element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE6sharedAA19SharedAsyncSequenceVyxGyF":{"name":"shared()","abstract":"

    Creates a shareable async sequence that can be used across multiple tasks.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE8throttle3for6latestAA21ThrottleAsyncSequenceVyxGSd_SbtF":{"name":"throttle(for:latest:)","abstract":"

    Emits either the most-recent or first element emitted by the base async","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE3zipyAA17Zip3AsyncSequenceVyxqd__qd_0_Gqd___qd_0_tSciRd__SciRd_0_r0_lF":{"name":"zip(_:_:)","abstract":"

    Create an asynchronous sequence that applys a zip function to the three async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneE3zipyAA16ZipAsyncSequenceVyxqd__Gqd__SciRd__lF":{"name":"zip(_:)","abstract":"

    Create an asynchronous sequence that applys a zip function to the two async sequences.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneSQ7ElementRpzrlE16removeDuplicatesAA06RemoveD13AsyncSequenceVyxGyF":{"name":"removeDuplicates()","abstract":"

    Emits only elements that don’t match the previous element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html#/s:Sci10AsynchroneSQ7ElementRpzrlE16removeDuplicates2byAA06RemoveD13AsyncSequenceVyxGSbAC_ACtc_tF":{"name":"removeDuplicates(by:)","abstract":"

    Omits any element that the predicate determines is equal to the previous element.

    ","parent_name":"AsyncSequence"},"Extensions/AsyncSequence.html":{"name":"AsyncSequence"},"Extensions/AsyncStream.html":{"name":"AsyncStream"},"Extensions/AsyncThrowingStream.html":{"name":"AsyncThrowingStream"},"Extensions/Task.html":{"name":"Task"},"Extensions/Sequence.html":{"name":"Sequence"},"Enums/AsyncSequenceCompletion.html#/s:10Asynchrone23AsyncSequenceCompletionO8finishedyACyxGAEms5ErrorRzlF":{"name":"finished","abstract":"

    The async sequence finished normally.

    ","parent_name":"AsyncSequenceCompletion"},"Enums/AsyncSequenceCompletion.html#/s:10Asynchrone23AsyncSequenceCompletionO7failureyACyxGxcAEms5ErrorRzlF":{"name":"failure(_:)","abstract":"

    The async sequence stopped emitting elements due to","parent_name":"AsyncSequenceCompletion"},"Enums/AsyncSequenceCompletion.html":{"name":"AsyncSequenceCompletion","abstract":"

    Describes how an async sequence has completed.

    "},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC7Elementa":{"name":"Element","abstract":"

    The kind of elements streamed.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC8intervalACSd_tcfc":{"name":"init(interval:)","abstract":"

    Creates an async sequence that emits the current date on a given interval.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC6cancelyyF":{"name":"cancel()","abstract":"

    Cancel the sequence from emitting anymore elements.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html#/s:10Asynchrone18TimerAsyncSequenceC04makeC8IteratorScS0F0Vy10Foundation4DateV_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"TimerAsyncSequence"},"Classes/TimerAsyncSequence.html":{"name":"TimerAsyncSequence","abstract":"

    An async sequence that emits the current date on a given interval.

    "},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC7elementxvp":{"name":"element","abstract":"

    The element wrapped by this async sequence, emitted as a new element whenever it changes.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceCyACyxGxcfc":{"name":"init(_:)","abstract":"

    Creates an async sequence that emits elements only after a specified time interval elapses between emissions.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC04makeD8IteratorScS0G0Vyx_GyF":{"name":"makeAsyncIterator()","abstract":"

    Creates an async iterator that emits elements of this async sequence.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC5yieldyyxF":{"name":"yield(_:)","abstract":"

    Yield a new element to the sequence.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC6finishyyF":{"name":"finish()","abstract":"

    Mark the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html#/s:10Asynchrone27CurrentElementAsyncSequenceC6finish4withyx_tF":{"name":"finish(with:)","abstract":"

    Emit one last element beford marking the sequence as finished by having it’s iterator emit nil.

    ","parent_name":"CurrentElementAsyncSequence"},"Actors/CurrentElementAsyncSequence.html":{"name":"CurrentElementAsyncSequence","abstract":"

    A async sequence that wraps a single value and emits a new element whenever the element changes.

    "},"Actors.html":{"name":"Actors","abstract":"

    The following actors are available globally.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/.documentation/undocumented.json b/.documentation/undocumented.json index e3dccb5..1e2602a 100644 --- a/.documentation/undocumented.json +++ b/.documentation/undocumented.json @@ -2,5 +2,5 @@ "warnings": [ ], - "source_directory": "/Users/reddavis/Documents/Projects/Asynchrone" + "source_directory": "/Users/reddavis/Developer/Asynchrone" } \ No newline at end of file