diff --git a/docs/Enums.html b/docs/Enums.html index 9cf1851..a53c13a 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -303,7 +303,7 @@

Declaration

diff --git a/docs/Enums/NoError.html b/docs/Enums/NoError.html index 458b040..17b5989 100644 --- a/docs/Enums/NoError.html +++ b/docs/Enums/NoError.html @@ -274,7 +274,7 @@

Declaration

diff --git a/docs/Enums/PromiseCallbackError.html b/docs/Enums/PromiseCallbackError.html index 1f0035b..8021752 100644 --- a/docs/Enums/PromiseCallbackError.html +++ b/docs/Enums/PromiseCallbackError.html @@ -160,7 +160,7 @@

Declaration

diff --git a/docs/Enums/PromiseContext.html b/docs/Enums/PromiseContext.html index a2b20b1..126cad5 100644 --- a/docs/Enums/PromiseContext.html +++ b/docs/Enums/PromiseContext.html @@ -516,7 +516,7 @@

Parameters

diff --git a/docs/Enums/PromiseResult.html b/docs/Enums/PromiseResult.html index 028cdf3..105e902 100644 --- a/docs/Enums/PromiseResult.html +++ b/docs/Enums/PromiseResult.html @@ -658,7 +658,7 @@

Declaration

diff --git a/docs/Enums/PromiseTimeoutError.html b/docs/Enums/PromiseTimeoutError.html index d3d428a..bdef3c0 100644 --- a/docs/Enums/PromiseTimeoutError.html +++ b/docs/Enums/PromiseTimeoutError.html @@ -375,7 +375,7 @@

Declaration

diff --git a/docs/Functions.html b/docs/Functions.html index 8ada33f..50fb7cc 100644 --- a/docs/Functions.html +++ b/docs/Functions.html @@ -935,7 +935,7 @@

Return Value

diff --git a/docs/Structs.html b/docs/Structs.html index 7b780dc..e0436e9 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -360,7 +360,7 @@

Declaration

diff --git a/docs/Structs/DelayedPromise.html b/docs/Structs/DelayedPromise.html index 8c48fe3..7ecda69 100644 --- a/docs/Structs/DelayedPromise.html +++ b/docs/Structs/DelayedPromise.html @@ -304,7 +304,7 @@

Declaration

diff --git a/docs/Structs/Promise.html b/docs/Structs/Promise.html index 819b3b9..c8d3208 100644 --- a/docs/Structs/Promise.html +++ b/docs/Structs/Promise.html @@ -3256,7 +3256,7 @@

Return Value

diff --git a/docs/Structs/Promise/Resolver.html b/docs/Structs/Promise/Resolver.html index a19eacb..3db7637 100644 --- a/docs/Structs/Promise/Resolver.html +++ b/docs/Structs/Promise/Resolver.html @@ -485,7 +485,7 @@

Declaration

diff --git a/docs/Structs/PromiseCancellable.html b/docs/Structs/PromiseCancellable.html index 9dbbbd0..8a60894 100644 --- a/docs/Structs/PromiseCancellable.html +++ b/docs/Structs/PromiseCancellable.html @@ -166,7 +166,7 @@

Declaration

diff --git a/docs/Structs/PromiseInvalidationToken.html b/docs/Structs/PromiseInvalidationToken.html index bad95f4..42dcd07 100644 --- a/docs/Structs/PromiseInvalidationToken.html +++ b/docs/Structs/PromiseInvalidationToken.html @@ -296,6 +296,91 @@

Declaration

+
  • +
    + + + + chainInvalidation(from:includingCancelWithoutInvalidating:) + +
    +
    +
    +
    +
    +
    +

    Invalidates the token whenever another token is invalidated.

    + +

    When the given other token is invalidated, the receiver will also be invalidated. This +allows you to build trees of tokens for fine-grained cancellation control while still +allowing for the ability to cancel a lot of promises from a single token.

    +
    +

    Note

    +

    Chained invalidation is a permanent relationship with no way to un-chain it later. +Invalidating token multiple times will invalidate the receiver every time.

    + +
    +
    +

    Remark

    +

    By using chained invalidation it’s possible to construct a scenario wherein you +respond to cancellation of a promise associated with the parent token by immediately +constructing a new promise using a child token, prior to the child token being invalidated +due to the parent token’s invalidation. This is a rather esoteric case.

    + +
    +
    +

    Important

    +

    Do not introduce any cycles into the invalidation chain, as this will produce +an infinite loop upon invalidation.

    + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func chainInvalidation(from token: PromiseInvalidationToken, includingCancelWithoutInvalidating: Bool = true)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + token + + +
    +

    Another token that, when invalidated, will cause the current token to be +invalidated as well.

    +
    +
    + + includingCancelWithoutInvalidating + + +
    +

    The default value of true means calls to +token.cancelWithoutInvalidating() will similarly call cancelWithoutInvalidating() on +the current token.

    +
    +
    +
    +
    +
    +
  • @@ -451,7 +536,7 @@

    Declaration

    diff --git a/docs/Structs/TokenPromise.html b/docs/Structs/TokenPromise.html index 287c3e0..8029c0b 100644 --- a/docs/Structs/TokenPromise.html +++ b/docs/Structs/TokenPromise.html @@ -2027,7 +2027,7 @@

    Declaration

    diff --git a/docs/Typealiases.html b/docs/Typealiases.html index 027135a..15bdff1 100644 --- a/docs/Typealiases.html +++ b/docs/Typealiases.html @@ -183,7 +183,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums.html index 9cf1851..a53c13a 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums.html @@ -303,7 +303,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/NoError.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/NoError.html index 458b040..17b5989 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/NoError.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/NoError.html @@ -274,7 +274,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseCallbackError.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseCallbackError.html index 1f0035b..8021752 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseCallbackError.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseCallbackError.html @@ -160,7 +160,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseContext.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseContext.html index a2b20b1..126cad5 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseContext.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseContext.html @@ -516,7 +516,7 @@

    Parameters

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseResult.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseResult.html index 028cdf3..105e902 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseResult.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseResult.html @@ -658,7 +658,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseTimeoutError.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseTimeoutError.html index d3d428a..bdef3c0 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseTimeoutError.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Enums/PromiseTimeoutError.html @@ -375,7 +375,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Functions.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Functions.html index 8ada33f..50fb7cc 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Functions.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Functions.html @@ -935,7 +935,7 @@

    Return Value

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs.html index 7b780dc..e0436e9 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs.html @@ -360,7 +360,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/DelayedPromise.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/DelayedPromise.html index 8c48fe3..7ecda69 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/DelayedPromise.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/DelayedPromise.html @@ -304,7 +304,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/Promise.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/Promise.html index 819b3b9..c8d3208 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/Promise.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/Promise.html @@ -3256,7 +3256,7 @@

    Return Value

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/Promise/Resolver.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/Promise/Resolver.html index a19eacb..3db7637 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/Promise/Resolver.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/Promise/Resolver.html @@ -485,7 +485,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/PromiseCancellable.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/PromiseCancellable.html index 9dbbbd0..8a60894 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/PromiseCancellable.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/PromiseCancellable.html @@ -166,7 +166,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/PromiseInvalidationToken.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/PromiseInvalidationToken.html index bad95f4..42dcd07 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/PromiseInvalidationToken.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/PromiseInvalidationToken.html @@ -296,6 +296,91 @@

    Declaration

  • +
  • +
    + + + + chainInvalidation(from:includingCancelWithoutInvalidating:) + +
    +
    +
    +
    +
    +
    +

    Invalidates the token whenever another token is invalidated.

    + +

    When the given other token is invalidated, the receiver will also be invalidated. This +allows you to build trees of tokens for fine-grained cancellation control while still +allowing for the ability to cancel a lot of promises from a single token.

    +
    +

    Note

    +

    Chained invalidation is a permanent relationship with no way to un-chain it later. +Invalidating token multiple times will invalidate the receiver every time.

    + +
    +
    +

    Remark

    +

    By using chained invalidation it’s possible to construct a scenario wherein you +respond to cancellation of a promise associated with the parent token by immediately +constructing a new promise using a child token, prior to the child token being invalidated +due to the parent token’s invalidation. This is a rather esoteric case.

    + +
    +
    +

    Important

    +

    Do not introduce any cycles into the invalidation chain, as this will produce +an infinite loop upon invalidation.

    + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public func chainInvalidation(from token: PromiseInvalidationToken, includingCancelWithoutInvalidating: Bool = true)
    + +
    +
    +
    +

    Parameters

    + + + + + + + + + + + +
    + + token + + +
    +

    Another token that, when invalidated, will cause the current token to be +invalidated as well.

    +
    +
    + + includingCancelWithoutInvalidating + + +
    +

    The default value of true means calls to +token.cancelWithoutInvalidating() will similarly call cancelWithoutInvalidating() on +the current token.

    +
    +
    +
    +
    +
    +
  • @@ -451,7 +536,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/TokenPromise.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/TokenPromise.html index 287c3e0..8029c0b 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/TokenPromise.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Structs/TokenPromise.html @@ -2027,7 +2027,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Typealiases.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Typealiases.html index 027135a..15bdff1 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Typealiases.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/Typealiases.html @@ -183,7 +183,7 @@

    Declaration

    diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/index.html b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/index.html index fa2a3ec..fb862bb 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/index.html @@ -115,7 +115,7 @@

    Tomorrowland

    -

    Version +

    Version Platforms Languages License @@ -156,11 +156,17 @@

    Manually

    You can add Tomorrowland to your workspace manually like any other project and add the resulting Tomorrowland.framework to your application’s frameworks.

    Carthage

    -
    github "lilyball/Tomorrowland" ~> 0.5.0
    +
    github "lilyball/Tomorrowland" ~> 1.0
     
    + +

    The project file is configured to use Swift 5. The code can be compiled against Swift 4.2 instead, but I’m not aware of any way to instruct Carthage to override the +swift version during compilation.

    CocoaPods

    -
    pod 'Tomorrowland', '~> 0.5.0'
    +
    pod 'Tomorrowland', '~> 1.0'
     
    + +

    The podspec declares support for both Swift 4.2 and Swift 5.0, but selecting the Swift version requires using CoocaPods 1.7.0 or later. When using CocoaPods 1.6 +or earlier the Swift version will default to 5.0.

    SwiftPM

    Tomorrowland currently relies on a private Obj-C module for its atomics. This arrangement means it is not compatible with Swift Package Manager (as adding @@ -328,6 +334,14 @@

    Cancelling and Invalidation } }

    +

    Invalidation token chaining

    + +

    PromiseInvalidationTokens can be arranged in a tree such that invalidating one token will cascade this invalidation down to other tokens. This is +accomplished by calling childToken.chainInvalidation(from: parentToken). Practically speaking this is no different than just manually invalidating each +child token yourself after invalidating the parent token, but it’s provided as a convenience to make it easy to have fine-grained invalidation control while also having +a simple way to bulk-invalidate tokens. For example, you might have separate tokens for different view controllers that all chain invalidation from a single token that +gets invalidated when the user logs out, thus automatically invalidating all your user-dependent network requests at once while still allowing each view controller the +ability to invalidate just its own requests independently.

    TokenPromise

    In order to avoid the repetition of passing a PromiseInvalidationToken to multiple Promise methods as well as cancelling the resulting promise, a type @@ -430,6 +444,23 @@

    Contribution

    Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.

    Version History

    +

    v1.0.0

    + +
      +
    • Fix a rather serious bug where PromiseInvalidationTokens would not deinit as long as any promise whose callback was tied to the token was still unresolved. +This meant that the default invalidateOnDeinit behavior would not trigger and the callback would still fire even though there were no more external references +to the token, and this meant any promises configured to be cancelled when the promise invalidated would not cancel. Tokens used purely for +requestCancelOnInvalidate(_:) would still deallocate, and tokens would still deallocate after any associated promises had resolved.
    • +
    • Tweak the atomic memory ordering used in PromiseInvalidationTokens. After a careful re-reading I don’t believe I was issuing the correct fences previously, +making it possible for tokens whose associated promise callbacks were executing concurrently with a call to requestCancelOnInvalidate(_:) to read the +wrong generation value, and for tokens that had requestCancelOnInvalidate(_:) invoked concurrently on multiple threads to corrupt the generation.
    • +
    • Add PromiseInvalidationToken.chainInvalidation(from:) to invalidate a token whenever another token invalidates. This allows for building a tree of +tokens in order to have both fine-grained and bulk invalidation at the same time. Tokens chained together this way stay chained forever (#43).
    • +
    • Update project file to Swift 5.0. The source already supported this. This change should only affect people using Carthage or anyone adding building this +framework from source.
    • +
    • Update the podspec to list both Swift 4.2 and Swift 5.0. With CocoaPods 1.7.0 or later your Podfile can now declare which version of Swift it’s compatible with. +For anyone using CocoaPods 1.6 or earlier it will default to Swift 5.0.
    • +

    v0.6.0

      @@ -551,7 +582,7 @@

      v0.1

      diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/search.json b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/search.json index 73120a3..3a0ff68 100644 --- a/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/Tomorrowland.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Typealiases.html#/s:12Tomorrowland17StdDelayedPromisea":{"name":"StdDelayedPromise","abstract":"

      StdDelayedPromise is an alias for a DelayedPromise whose error type is Swift.Error.

      "},"Typealiases.html#/s:12Tomorrowland10StdPromisea":{"name":"StdPromise","abstract":"

      StdPromise is an alias for a Promise whose error type is Swift.Error.

      "},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5innerAA0C0Vyxq_Gvp":{"name":"inner","abstract":"

      The wrapped Promise.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5tokenAA0c12InvalidationB0Vvp":{"name":"token","abstract":"

      The PromiseInvalidationToken to use when invoking methods on the wrapped Promise.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7promise5tokenACyxq_GAA0C0Vyxq_G_AA0c12InvalidationB0Vtcfc":{"name":"init(promise:token:)","abstract":"

      Returns a new TokenPromise that wraps the given promise.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV4then2on_ACyxq_GAA0C7ContextO_yxctF":{"name":"then(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3map2on_ACyqd__q_GAA0C7ContextO_qd__xctlF":{"name":"map(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7flatMap2on_ACyqd__q_GAA0C7ContextO_AA0C0Vyqd__q_GxctlF":{"name":"flatMap(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5catch2on_ACyxq_GAA0C7ContextO_yq_ctF":{"name":"catch(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is rejected.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7recover2on_ACyxAA7NoErrorOGAA0C7ContextO_xq_ctF":{"name":"recover(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV8mapError2on_ACyxqd__GAA0C7ContextO_qd__q_ctlF":{"name":"mapError(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV12flatMapError2on_ACyxqd__GAA0C7ContextO_AA0C0Vyxqd__Gq_ctlF":{"name":"flatMapError(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV11tryMapError2on_ACyxs0F0_pGAA0C7ContextO_qd__q_KctsAFRd__lF":{"name":"tryMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV15tryFlatMapError2on_ACyxs0G0_pGAA0C7ContextO_AA0C0Vyxqd__Gq_KctsAFRd__lF":{"name":"tryFlatMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryMapError(on:_:)":{"name":"tryMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMapError(on:_:)":{"name":"tryFlatMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV6always2on_ACyxq_GAA0C7ContextO_yAA0C6ResultOyxq_GctF":{"name":"always(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV9mapResult2on0F8CompleteACyqd__qd_0_GAA0C7ContextO_AA0cE0Oyqd__qd_0_GAKyxq_Gctr0_lF":{"name":"mapResult(on:onComplete:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV13flatMapResult2on_ACyqd__qd_0_GAA0C7ContextO_AA0C0Vyqd__qd_0_GAA0cF0Oyxq_Gctr0_lF":{"name":"flatMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV12tryMapResult2on_ACyqd__s5Error_pGAA0C7ContextO_AA0cF0Oyqd__qd_0_GAKyxq_GKctsAFRd_0_r0_lF":{"name":"tryMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV16tryFlatMapResult2on_ACyqd__s5Error_pGAA0C7ContextO_AA0C0Vyqd__qd_0_GAA0cG0Oyxq_GKctsAFRd_0_r0_lF":{"name":"tryFlatMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryMapResult(on:_:)":{"name":"tryMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMapResult(on:_:)":{"name":"tryFlatMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3tap2on_ACyxq_GAA0C7ContextO_yAA0C6ResultOyxq_GctF":{"name":"tap(on:_:)","abstract":"

      Registers a callback that will be invoked when the promise is resolved without affecting behavior.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3tapACyxq_GyF":{"name":"tap()","abstract":"

      Returns a new TokenPromise that adopts the result of the receiver without affecting its","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV8onCancel0D0_ACyxq_GAA0C7ContextO_yyctF":{"name":"onCancel(on:_:)","abstract":"

      Registers a callback that will be invoked when the promise is cancelled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV4forkyACyxq_GyAEKXEKF":{"name":"fork(_:)","abstract":"

      Passes the TokenPromise to a block and then returns the TokenPromise for further","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV14ignoringCancelACyxq_GyF":{"name":"ignoringCancel()","abstract":"

      Returns a new TokenPromise that adopts the value of the receiver but ignores cancel","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE7tryThen2on_ACyxsAD_pGAA0C7ContextO_yxKctF":{"name":"tryThen(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE6tryMap2on_ACyqd__sAD_pGAA0C7ContextO_qd__xKctlF":{"name":"tryMap(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMap(on:_:)":{"name":"tryFlatMap(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE10tryFlatMap2on_ACyqd__sAD_pGAA0C7ContextO_AA0C0Vyqd__qd_0_GxKctsADRd_0_r0_lF":{"name":"tryFlatMap(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE10tryRecover2on_ACyxsAD_pGAA0C7ContextO_xsAD_pKctF":{"name":"tryRecover(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE010tryFlatMapD02on_ACyxsAD_pGAA0C7ContextO_AA0C0Vyxqd__GsAD_pKctsADRd__lF":{"name":"tryFlatMapError(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

      Two TokenPromises compare as equal if they represent the same promise.

      ","parent_name":"TokenPromise"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV18invalidateOnDeinitACSb_tcfc":{"name":"init(invalidateOnDeinit:)","abstract":"

      Creates and returns a new PromiseInvalidationToken.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV10invalidateyyF":{"name":"invalidate()","abstract":"

      Invalidates the token and cancels any associated promises.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25cancelWithoutInvalidatingyyF":{"name":"cancelWithoutInvalidating()","abstract":"

      Cancels any associated promises without invalidating the token.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25requestCancelOnInvalidateyyAA0B0Vyxq_Gr0_lF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

      Registers a Promise to be requested to cancel automatically when the token is invalidated.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25requestCancelOnInvalidateyySo10TWLPromiseCyxq_GRlzCRl_Cr0_lF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

      Registers an ObjCPromise to be requested to cancel automatically when the token is","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseInvalidationToken"},"Structs/PromiseCancellable.html#/s:12Tomorrowland18PromiseCancellableV13requestCancelyyF":{"name":"requestCancel()","abstract":"

      Requests cancellation of the promise this PromiseCancellable was created from.

      ","parent_name":"PromiseCancellable"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7fulfill4withyx_tF":{"name":"fulfill(with:)","abstract":"

      Fulfills the promise with the given value.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV6reject4withyq__tF":{"name":"reject(with:)","abstract":"

      Rejects the promise with the given error.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV6cancelyyF":{"name":"cancel()","abstract":"

      Cancels the promise.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7resolve4withyAA0B6ResultOyxq_G_tF":{"name":"resolve(with:)","abstract":"

      Resolves the promise with the given result.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7resolve4withyACyxq_G_tF":{"name":"resolve(with:)","abstract":"

      Resolves the promise with another promise.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV15onRequestCancel0D0_yAA0B7ContextO_yAEyxq__GctF":{"name":"onRequestCancel(on:_:)","abstract":"

      Registers a block that will be invoked if requestCancel() is invoked on the promise","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5Error_pRs_rlE7resolve4withyAA0B6ResultOyxqd__G_tsAFRd__lF":{"name":"resolve(with:)","abstract":"

      Resolves the promise with the given result.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5Error_pRs_rlE14handleCallback08isCancelD0yxSg_sAF_pSgtcSbsAF_pc_tF":{"name":"handleCallback(isCancelError:)","abstract":"

      Convenience method for handling framework callbacks.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5ErrorR_rlE7resolve4withys6ResultOyxq_G_tF":{"name":"resolve(with:)","abstract":"

      Resolves the promise with the given result.

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

      A Resolver is used to fulfill, reject, or cancel its associated Promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6resultAA0B6ResultOyxq_GSgvp":{"name":"result","abstract":"

      Returns the result of the promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV16makeWithResolverACyxq_G_AC0E0Vyxq__GtyFZ":{"name":"makeWithResolver()","abstract":"

      Returns a Promise and a Promise.Resolver that can be used to fulfill that promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on_ACyxq_GAA0B7ContextO_yAC8ResolverVyxq__Gctcfc":{"name":"init(on:_:)","abstract":"

      Returns a new Promise that will be resolved using the given block.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9fulfilledACyxq_Gx_tcfc":{"name":"init(fulfilled:)","abstract":"

      Returns a Promise that is already fulfilled with the given value.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8rejectedACyxq_Gq__tcfc":{"name":"init(rejected:)","abstract":"

      Returns a Promise that is already rejected with the given error.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4withACyxq_GAA0B6ResultOyxq_G_tcfc":{"name":"init(with:)","abstract":"

      Returns a Promise that is already resolved with the given result.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4then2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyxctF":{"name":"then(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3map2on5token_ACyqd__q_GAA0B7ContextO_AA0B17InvalidationTokenVSgqd__xctlF":{"name":"map(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7flatMap2on5token_ACyqd__q_GAA0B7ContextO_AA0B17InvalidationTokenVSgAGxctlF":{"name":"flatMap(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV5catch2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyq_ctF":{"name":"catch(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is rejected.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7recover2on5token_ACyxAA7NoErrorOGAA0B7ContextO_AA0B17InvalidationTokenVSgxq_ctF":{"name":"recover(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8mapError2on5token_ACyxqd__GAA0B7ContextO_AA0B17InvalidationTokenVSgqd__q_ctlF":{"name":"mapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV12flatMapError2on5token_ACyxqd__GAA0B7ContextO_AA0B17InvalidationTokenVSgAGq_ctlF":{"name":"flatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV11tryMapError2on5token_ACyxs0E0_pGAA0B7ContextO_AA0B17InvalidationTokenVSgqd__q_KctsAGRd__lF":{"name":"tryMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV15tryFlatMapError2on5token_ACyxs0F0_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyxqd__Gq_KctsAGRd__lF":{"name":"tryFlatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/tryMapError(on:token:_:)":{"name":"tryMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMapError(on:token:_:)":{"name":"tryFlatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6always2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyAA0B6ResultOyxq_GctF":{"name":"always(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9mapResult2on5token_ACyqd__qd_0_GAA0B7ContextO_AA0B17InvalidationTokenVSgAA0bD0Oyqd__qd_0_GANyxq_Gctr0_lF":{"name":"mapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV13flatMapResult2on5token_ACyqd__qd_0_GAA0B7ContextO_AA0B17InvalidationTokenVSgAgA0bE0Oyxq_Gctr0_lF":{"name":"flatMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV12tryMapResult2on5token_ACyqd__s5Error_pGAA0B7ContextO_AA0B17InvalidationTokenVSgAA0bE0Oyqd__qd_0_GAOyxq_GKctsAGRd_0_r0_lF":{"name":"tryMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV16tryFlatMapResult2on5token_ACyqd__s5Error_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyqd__qd_0_GAA0bF0Oyxq_GKctsAGRd_0_r0_lF":{"name":"tryFlatMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/tryMapResult(on:token:_:)":{"name":"tryMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMapResult(on:token:_:)":{"name":"tryFlatMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3tap2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyAA0B6ResultOyxq_GctF":{"name":"tap(on:token:_:)","abstract":"

      Registers a callback that will be invoked when the promise is resolved without affecting behavior.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3tapACyxq_GyF":{"name":"tap()","abstract":"

      Returns a new Promise that adopts the result of the receiver without affecting its behavior.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8onCancel0C05token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyyctF":{"name":"onCancel(on:token:_:)","abstract":"

      Registers a callback that will be invoked when the promise is cancelled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4forkyACyxq_GyAEKXEKF":{"name":"fork(_:)","abstract":"

      Passes the Promise to a block and then returns the Promise for further chaining.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV13requestCancelyyF":{"name":"requestCancel()","abstract":"

      Requests that the Promise should be cancelled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV25requestCancelOnInvalidateyACyxq_GAA0B17InvalidationTokenVF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

      Requests that the Promise should be cancelled when the token is invalidated.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV14ignoringCancelACyxq_GyF":{"name":"ignoringCancel()","abstract":"

      Returns a new Promise that adopts the value of the receiver but ignores cancel requests.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6resultACyxq_GAA0B6ResultOyxq_G_tcfc":{"name":"init(result:)","abstract":"

      Undocumented

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on6result5afterACyxq_GAA0B7ContextO_AA0B6ResultOyxq_GSdtcfc":{"name":"init(on:result:after:)","abstract":"

      Undocumented

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV21requestCancelOnDeinityACyxq_GyXlF":{"name":"requestCancelOnDeinit(_:)","abstract":"

      Requests that the Promise should be cancelled when the object deinits.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5ErrorR_rlE6upcastACyxsAD_pGvp":{"name":"upcast","abstract":"

      Returns a new promise with an error type of Swift.Error.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVA2A7NoErrorORs_rlE6upcastACyxs0D0_pGvp":{"name":"upcast","abstract":"

      Returns a new promise with an error type of Swift.Error.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE2on_ACyxsAD_pGAA0B7ContextO_yAC8ResolverVyxsAD_p_GKctcfc":{"name":"init(on:_:)","abstract":"

      Returns a new Promise that will be resolved using the given block.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE7tryThen2on5token_ACyxsAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgyxKctF":{"name":"tryThen(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE6tryMap2on5token_ACyqd__sAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgqd__xKctlF":{"name":"tryMap(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMap(on:token:_:)":{"name":"tryFlatMap(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE10tryFlatMap2on5token_ACyqd__sAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyqd__qd_0_GxKctsADRd_0_r0_lF":{"name":"tryFlatMap(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE10tryRecover2on5token_ACyxsAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgxsAD_pKctF":{"name":"tryRecover(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

      Two Promises compare as equal if they represent the same promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV11cancellableAA0B11CancellableVvp":{"name":"cancellable","abstract":"

      Returns a value that can be used to cancel this promise without holding onto the full promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5ErrorR_rlE4withACyxq_Gs6ResultOyxq_G_tcfc":{"name":"init(with:)","abstract":"

      Returns a Promise that is already resolved with the given result.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9withTokenyAA0dB0Vyxq_GAA0b12InvalidationD0VF":{"name":"withToken(_:)","abstract":"

      Returns a new TokenPromise that wraps the receiver.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on9fulfilled5afterACyxq_GAA0B7ContextO_xSdtcfc":{"name":"init(on:fulfilled:after:)","abstract":"

      Returns a Promise that fulfills with the given value after a delay.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on8rejected5afterACyxq_GAA0B7ContextO_q_Sdtcfc":{"name":"init(on:rejected:after:)","abstract":"

      Returns a Promise that rejects with the given error after a delay.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on4with5afterACyxq_GAA0B7ContextO_AA0B6ResultOyxq_GSdtcfc":{"name":"init(on:with:after:)","abstract":"

      Returns a Promise that resolves with the given result after a delay.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV5delay2on_ACyxq_GAA0B7ContextO_SdtF":{"name":"delay(on:_:)","abstract":"

      Returns a new Promise that adopts the receiver’s result after a delay.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7timeout2on5delayACyxAA0B12TimeoutErrorOyq_GGAA0B7ContextO_SdtF":{"name":"timeout(on:delay:)","abstract":"

      Returns a Promise that is rejected with an error if the receiver does not resolve within","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE7timeout2on5delayACyxsAD_pGAA0B7ContextO_SdtF":{"name":"timeout(on:delay:)","abstract":"

      Returns a Promise that is rejected with an error if the receiver does not resolve within","parent_name":"Promise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV8Resolvera":{"name":"Resolver","abstract":"

      The type of the promise resolver. See Promise<Value,Error>.Resolver.

      ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV2on_ACyxq_GAA0C7ContextO_yAA0C0V8ResolverVyxq__Gctcfc":{"name":"init(on:_:)","abstract":"

      Returns a new DelayedPromise that can be resolved with the given block.

      ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV7promiseAA0C0Vyxq_Gvp":{"name":"promise","abstract":"

      Returns a Promise that asynchronously contains the value of the computation.

      ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

      Two DelayedPromises compare as equal if they would produce equal Promises.

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

      DelayedPromise is like a Promise but it doesn’t invoke its callback until the .promise"},"Structs/Promise.html":{"name":"Promise","abstract":"

      A Promise is a construct that will eventually hold a value or error, and can invoke callbacks"},"Structs/PromiseCancellable.html":{"name":"PromiseCancellable","abstract":"

      A type that can be used to cancel a promise without holding onto the full promise.

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

      An invalidation token that can be used to cancel callbacks registered to a Promise.

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

      A Promise adapter that automatically applies a PromiseInvalidationToken.

      "},"Functions.html#/s:12Tomorrowland4when9fulfilled3qos15cancelOnFailureAA7PromiseVySayxGq_GSayAGyxq_GG_8Dispatch0I3QoSV0J6SClassOSbtr0_lF":{"name":"when(fulfilled:qos:cancelOnFailure:)","abstract":"

      Waits on an array of Promises and returns a Promise that is fulfilled with an array of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled_____3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_q2_q3_tq4_GAGyxq4_G_AGyq_q4_GAGyq0_q4_GAGyq1_q4_GAGyq2_q4_GAGyq3_q4_G8Dispatch0I3QoSV0J6SClassOSbtr5_lF":{"name":"when(fulfilled:_:_:_:_:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled____3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_q2_tq3_GAGyxq3_G_AGyq_q3_GAGyq0_q3_GAGyq1_q3_GAGyq2_q3_G8Dispatch0I3QoSV0J6SClassOSbtr4_lF":{"name":"when(fulfilled:_:_:_:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled___3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_tq2_GAGyxq2_G_AGyq_q2_GAGyq0_q2_GAGyq1_q2_G8Dispatch0I3QoSV0J6SClassOSbtr3_lF":{"name":"when(fulfilled:_:_:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled__3qos15cancelOnFailureAA7PromiseVyx_q_q0_tq1_GAGyxq1_G_AGyq_q1_GAGyq0_q1_G8Dispatch0I3QoSV0J6SClassOSbtr2_lF":{"name":"when(fulfilled:_:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled_3qos15cancelOnFailureAA7PromiseVyx_q_tq0_GAGyxq0_G_AGyq_q0_G8Dispatch0I3QoSV0J6SClassOSbtr1_lF":{"name":"when(fulfilled:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when5first15cancelRemainingAA7PromiseVyxq_GSayAGG_Sbtr0_lF":{"name":"when(first:cancelRemaining:)","abstract":"

      Returns a Promise that is resolved with the result of the first resolved input Promise.

      "},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorO8timedOutyACyxGAEmlF":{"name":"timedOut","abstract":"

      The promise did not resolve within the given interval.

      ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorO8rejectedyACyxGxcAEmlF":{"name":"rejected(_:)","abstract":"

      The promise was rejected with an error.

      ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:10Foundation13CustomNSErrorP13errorUserInfoSDySSypGvp":{"name":"errorUserInfo","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorOAASQRzlE2eeoiySbACyxG_AEtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorOAASQRzlE2neoiySbACyxG_AEtFZ":{"name":"!=(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are not equal.

      ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseTimeoutError"},"Enums/NoError.html#/s:12Tomorrowland7NoErrorO2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"NoError"},"Enums/NoError.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"NoError"},"Enums/NoError.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"NoError"},"Enums/NoError.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"NoError"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5valueyACyxq_GxcAEmr0_lF":{"name":"value(_:)","abstract":"

      The value the promise was fulfilled with.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5erroryACyxq_Gq_cAEmr0_lF":{"name":"error(_:)","abstract":"

      The error the promise was rejected with.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO9cancelledyACyxq_GAEmr0_lF":{"name":"cancelled","abstract":"

      The promise was cancelled.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5valuexSgvp":{"name":"value","abstract":"

      Returns the contained value if the result is .value, otherwise nil.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5errorq_Sgvp":{"name":"error","abstract":"

      Returns the contained error if the result is .error, otherwise nil.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO11isCancelledSbvp":{"name":"isCancelled","abstract":"

      Returns true if the result is .cancelled, otherwise false.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO3mapyACyqd__q_Gqd__xKXEKlF":{"name":"map(_:)","abstract":"

      Maps a successful result through a block and returns the new result.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO8mapErroryACyxqd__Gqd__q_KXEKlF":{"name":"mapError(_:)","abstract":"

      Maps a rejected result through a block and returns the new result.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO7flatMapyACyqd__q_GAExKXEKlF":{"name":"flatMap(_:)","abstract":"

      Maps a successful result through a block and returns the new result.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO12flatMapErroryACyxqd__GAEq_KXEKlF":{"name":"flatMapError(_:)","abstract":"

      Maps a rejected result through a block and returns the new result.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAASQRzSQR_rlE2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAASQRzSQR_rlE2neoiySbACyxq_G_AEtFZ":{"name":"!=(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are not equal.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAAs5ErrorR_rlEyACyxq_Gs0C0Oyxq_Gcfc":{"name":"init(_:)","abstract":"

      Returns a PromiseResult from a Result.

      ","parent_name":"PromiseResult"},"Enums/PromiseCallbackError.html#/c:@M@Tomorrowland@E@TWLPromiseCallbackError@TWLPromiseCallbackErrorAPIMismatch":{"name":"apiMismatch","abstract":"

      The callback did not conform to the expected API.

      ","parent_name":"PromiseCallbackError"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO4mainyA2CmF":{"name":"main","abstract":"

      Execute on the main queue.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO10backgroundyA2CmF":{"name":"background","abstract":"

      Execute on a dispatch queue with the .background QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO7utilityyA2CmF":{"name":"utility","abstract":"

      Execute on a dispatch queue with the .utility QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO7defaultyA2CmF":{"name":"default","abstract":"

      Execute on a dispatch queue with the .default QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO13userInitiatedyA2CmF":{"name":"userInitiated","abstract":"

      Execute on a dispatch queue with the .userInitiated QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO15userInteractiveyA2CmF":{"name":"userInteractive","abstract":"

      Execute on a dispatch queue with the .userInteractive QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO5queueyACSo012OS_dispatch_D0CcACmF":{"name":"queue(_:)","abstract":"

      Execute on the specified dispatch queue.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO14operationQueueyACSo011NSOperationE0CcACmF":{"name":"operationQueue(_:)","abstract":"

      Execute on the specified operation queue.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO9immediateyA2CmF":{"name":"immediate","abstract":"

      Execute synchronously.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO4autoACvpZ":{"name":"auto","abstract":"

      Returns .main when accessed from the main thread, otherwise .default.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO3qosAC8Dispatch0E3QoSV0F6SClassO_tcfc":{"name":"init(qos:)","abstract":"

      Returns the PromiseContext that corresponds to a given Dispatch QoS class.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html":{"name":"PromiseContext","abstract":"

      The context in which a Promise body or callback is evaluated.

      "},"Enums/PromiseCallbackError.html":{"name":"PromiseCallbackError","abstract":"

      An error potentially returned from Promise.Resolver.handleCallback(isCancelError:).

      "},"Enums/PromiseResult.html":{"name":"PromiseResult","abstract":"

      The result of a resolved promise.

      "},"Enums/NoError.html":{"name":"NoError","abstract":"

      NoError is a type that cannot be constructed.

      "},"Enums/PromiseTimeoutError.html":{"name":"PromiseTimeoutError","abstract":"

      The error type returned from Promise.timeout.

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

      The following enumerations are available globally.

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

      The following functions are available globally.

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

      The following structures are available globally.

      "},"Typealiases.html":{"name":"Type Aliases","abstract":"

      The following type aliases are available globally.

      "}} \ No newline at end of file +{"Typealiases.html#/s:12Tomorrowland17StdDelayedPromisea":{"name":"StdDelayedPromise","abstract":"

      StdDelayedPromise is an alias for a DelayedPromise whose error type is Swift.Error.

      "},"Typealiases.html#/s:12Tomorrowland10StdPromisea":{"name":"StdPromise","abstract":"

      StdPromise is an alias for a Promise whose error type is Swift.Error.

      "},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5innerAA0C0Vyxq_Gvp":{"name":"inner","abstract":"

      The wrapped Promise.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5tokenAA0c12InvalidationB0Vvp":{"name":"token","abstract":"

      The PromiseInvalidationToken to use when invoking methods on the wrapped Promise.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7promise5tokenACyxq_GAA0C0Vyxq_G_AA0c12InvalidationB0Vtcfc":{"name":"init(promise:token:)","abstract":"

      Returns a new TokenPromise that wraps the given promise.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV4then2on_ACyxq_GAA0C7ContextO_yxctF":{"name":"then(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3map2on_ACyqd__q_GAA0C7ContextO_qd__xctlF":{"name":"map(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7flatMap2on_ACyqd__q_GAA0C7ContextO_AA0C0Vyqd__q_GxctlF":{"name":"flatMap(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5catch2on_ACyxq_GAA0C7ContextO_yq_ctF":{"name":"catch(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is rejected.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7recover2on_ACyxAA7NoErrorOGAA0C7ContextO_xq_ctF":{"name":"recover(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV8mapError2on_ACyxqd__GAA0C7ContextO_qd__q_ctlF":{"name":"mapError(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV12flatMapError2on_ACyxqd__GAA0C7ContextO_AA0C0Vyxqd__Gq_ctlF":{"name":"flatMapError(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV11tryMapError2on_ACyxs0F0_pGAA0C7ContextO_qd__q_KctsAFRd__lF":{"name":"tryMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV15tryFlatMapError2on_ACyxs0G0_pGAA0C7ContextO_AA0C0Vyxqd__Gq_KctsAFRd__lF":{"name":"tryFlatMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryMapError(on:_:)":{"name":"tryMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMapError(on:_:)":{"name":"tryFlatMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV6always2on_ACyxq_GAA0C7ContextO_yAA0C6ResultOyxq_GctF":{"name":"always(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV9mapResult2on0F8CompleteACyqd__qd_0_GAA0C7ContextO_AA0cE0Oyqd__qd_0_GAKyxq_Gctr0_lF":{"name":"mapResult(on:onComplete:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV13flatMapResult2on_ACyqd__qd_0_GAA0C7ContextO_AA0C0Vyqd__qd_0_GAA0cF0Oyxq_Gctr0_lF":{"name":"flatMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV12tryMapResult2on_ACyqd__s5Error_pGAA0C7ContextO_AA0cF0Oyqd__qd_0_GAKyxq_GKctsAFRd_0_r0_lF":{"name":"tryMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV16tryFlatMapResult2on_ACyqd__s5Error_pGAA0C7ContextO_AA0C0Vyqd__qd_0_GAA0cG0Oyxq_GKctsAFRd_0_r0_lF":{"name":"tryFlatMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryMapResult(on:_:)":{"name":"tryMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMapResult(on:_:)":{"name":"tryFlatMapResult(on:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3tap2on_ACyxq_GAA0C7ContextO_yAA0C6ResultOyxq_GctF":{"name":"tap(on:_:)","abstract":"

      Registers a callback that will be invoked when the promise is resolved without affecting behavior.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3tapACyxq_GyF":{"name":"tap()","abstract":"

      Returns a new TokenPromise that adopts the result of the receiver without affecting its","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV8onCancel0D0_ACyxq_GAA0C7ContextO_yyctF":{"name":"onCancel(on:_:)","abstract":"

      Registers a callback that will be invoked when the promise is cancelled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV4forkyACyxq_GyAEKXEKF":{"name":"fork(_:)","abstract":"

      Passes the TokenPromise to a block and then returns the TokenPromise for further","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV14ignoringCancelACyxq_GyF":{"name":"ignoringCancel()","abstract":"

      Returns a new TokenPromise that adopts the value of the receiver but ignores cancel","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE7tryThen2on_ACyxsAD_pGAA0C7ContextO_yxKctF":{"name":"tryThen(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE6tryMap2on_ACyqd__sAD_pGAA0C7ContextO_qd__xKctlF":{"name":"tryMap(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMap(on:_:)":{"name":"tryFlatMap(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE10tryFlatMap2on_ACyqd__sAD_pGAA0C7ContextO_AA0C0Vyqd__qd_0_GxKctsADRd_0_r0_lF":{"name":"tryFlatMap(on:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE10tryRecover2on_ACyxsAD_pGAA0C7ContextO_xsAD_pKctF":{"name":"tryRecover(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE010tryFlatMapD02on_ACyxsAD_pGAA0C7ContextO_AA0C0Vyxqd__GsAD_pKctsADRd__lF":{"name":"tryFlatMapError(on:_:)","abstract":"
      ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

      Two TokenPromises compare as equal if they represent the same promise.

      ","parent_name":"TokenPromise"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV18invalidateOnDeinitACSb_tcfc":{"name":"init(invalidateOnDeinit:)","abstract":"

      Creates and returns a new PromiseInvalidationToken.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV10invalidateyyF":{"name":"invalidate()","abstract":"

      Invalidates the token and cancels any associated promises.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25cancelWithoutInvalidatingyyF":{"name":"cancelWithoutInvalidating()","abstract":"

      Cancels any associated promises without invalidating the token.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25requestCancelOnInvalidateyyAA0B0Vyxq_Gr0_lF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

      Registers a Promise to be requested to cancel automatically when the token is invalidated.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25requestCancelOnInvalidateyySo10TWLPromiseCyxq_GRlzCRl_Cr0_lF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

      Registers an ObjCPromise to be requested to cancel automatically when the token is","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV05chainC04from34includingCancelWithoutInvalidatingyAC_SbtF":{"name":"chainInvalidation(from:includingCancelWithoutInvalidating:)","abstract":"

      Invalidates the token whenever another token is invalidated.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseInvalidationToken"},"Structs/PromiseCancellable.html#/s:12Tomorrowland18PromiseCancellableV13requestCancelyyF":{"name":"requestCancel()","abstract":"

      Requests cancellation of the promise this PromiseCancellable was created from.

      ","parent_name":"PromiseCancellable"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7fulfill4withyx_tF":{"name":"fulfill(with:)","abstract":"

      Fulfills the promise with the given value.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV6reject4withyq__tF":{"name":"reject(with:)","abstract":"

      Rejects the promise with the given error.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV6cancelyyF":{"name":"cancel()","abstract":"

      Cancels the promise.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7resolve4withyAA0B6ResultOyxq_G_tF":{"name":"resolve(with:)","abstract":"

      Resolves the promise with the given result.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7resolve4withyACyxq_G_tF":{"name":"resolve(with:)","abstract":"

      Resolves the promise with another promise.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV15onRequestCancel0D0_yAA0B7ContextO_yAEyxq__GctF":{"name":"onRequestCancel(on:_:)","abstract":"

      Registers a block that will be invoked if requestCancel() is invoked on the promise","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5Error_pRs_rlE7resolve4withyAA0B6ResultOyxqd__G_tsAFRd__lF":{"name":"resolve(with:)","abstract":"

      Resolves the promise with the given result.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5Error_pRs_rlE14handleCallback08isCancelD0yxSg_sAF_pSgtcSbsAF_pc_tF":{"name":"handleCallback(isCancelError:)","abstract":"

      Convenience method for handling framework callbacks.

      ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5ErrorR_rlE7resolve4withys6ResultOyxq_G_tF":{"name":"resolve(with:)","abstract":"

      Resolves the promise with the given result.

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

      A Resolver is used to fulfill, reject, or cancel its associated Promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6resultAA0B6ResultOyxq_GSgvp":{"name":"result","abstract":"

      Returns the result of the promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV16makeWithResolverACyxq_G_AC0E0Vyxq__GtyFZ":{"name":"makeWithResolver()","abstract":"

      Returns a Promise and a Promise.Resolver that can be used to fulfill that promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on_ACyxq_GAA0B7ContextO_yAC8ResolverVyxq__Gctcfc":{"name":"init(on:_:)","abstract":"

      Returns a new Promise that will be resolved using the given block.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9fulfilledACyxq_Gx_tcfc":{"name":"init(fulfilled:)","abstract":"

      Returns a Promise that is already fulfilled with the given value.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8rejectedACyxq_Gq__tcfc":{"name":"init(rejected:)","abstract":"

      Returns a Promise that is already rejected with the given error.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4withACyxq_GAA0B6ResultOyxq_G_tcfc":{"name":"init(with:)","abstract":"

      Returns a Promise that is already resolved with the given result.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4then2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyxctF":{"name":"then(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3map2on5token_ACyqd__q_GAA0B7ContextO_AA0B17InvalidationTokenVSgqd__xctlF":{"name":"map(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7flatMap2on5token_ACyqd__q_GAA0B7ContextO_AA0B17InvalidationTokenVSgAGxctlF":{"name":"flatMap(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV5catch2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyq_ctF":{"name":"catch(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is rejected.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7recover2on5token_ACyxAA7NoErrorOGAA0B7ContextO_AA0B17InvalidationTokenVSgxq_ctF":{"name":"recover(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8mapError2on5token_ACyxqd__GAA0B7ContextO_AA0B17InvalidationTokenVSgqd__q_ctlF":{"name":"mapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV12flatMapError2on5token_ACyxqd__GAA0B7ContextO_AA0B17InvalidationTokenVSgAGq_ctlF":{"name":"flatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV11tryMapError2on5token_ACyxs0E0_pGAA0B7ContextO_AA0B17InvalidationTokenVSgqd__q_KctsAGRd__lF":{"name":"tryMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV15tryFlatMapError2on5token_ACyxs0F0_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyxqd__Gq_KctsAGRd__lF":{"name":"tryFlatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/tryMapError(on:token:_:)":{"name":"tryMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMapError(on:token:_:)":{"name":"tryFlatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6always2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyAA0B6ResultOyxq_GctF":{"name":"always(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9mapResult2on5token_ACyqd__qd_0_GAA0B7ContextO_AA0B17InvalidationTokenVSgAA0bD0Oyqd__qd_0_GANyxq_Gctr0_lF":{"name":"mapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV13flatMapResult2on5token_ACyqd__qd_0_GAA0B7ContextO_AA0B17InvalidationTokenVSgAgA0bE0Oyxq_Gctr0_lF":{"name":"flatMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV12tryMapResult2on5token_ACyqd__s5Error_pGAA0B7ContextO_AA0B17InvalidationTokenVSgAA0bE0Oyqd__qd_0_GAOyxq_GKctsAGRd_0_r0_lF":{"name":"tryMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV16tryFlatMapResult2on5token_ACyqd__s5Error_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyqd__qd_0_GAA0bF0Oyxq_GKctsAGRd_0_r0_lF":{"name":"tryFlatMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/tryMapResult(on:token:_:)":{"name":"tryMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMapResult(on:token:_:)":{"name":"tryFlatMapResult(on:token:_:)","abstract":"

      Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3tap2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyAA0B6ResultOyxq_GctF":{"name":"tap(on:token:_:)","abstract":"

      Registers a callback that will be invoked when the promise is resolved without affecting behavior.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3tapACyxq_GyF":{"name":"tap()","abstract":"

      Returns a new Promise that adopts the result of the receiver without affecting its behavior.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8onCancel0C05token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyyctF":{"name":"onCancel(on:token:_:)","abstract":"

      Registers a callback that will be invoked when the promise is cancelled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4forkyACyxq_GyAEKXEKF":{"name":"fork(_:)","abstract":"

      Passes the Promise to a block and then returns the Promise for further chaining.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV13requestCancelyyF":{"name":"requestCancel()","abstract":"

      Requests that the Promise should be cancelled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV25requestCancelOnInvalidateyACyxq_GAA0B17InvalidationTokenVF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

      Requests that the Promise should be cancelled when the token is invalidated.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV14ignoringCancelACyxq_GyF":{"name":"ignoringCancel()","abstract":"

      Returns a new Promise that adopts the value of the receiver but ignores cancel requests.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6resultACyxq_GAA0B6ResultOyxq_G_tcfc":{"name":"init(result:)","abstract":"

      Undocumented

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on6result5afterACyxq_GAA0B7ContextO_AA0B6ResultOyxq_GSdtcfc":{"name":"init(on:result:after:)","abstract":"

      Undocumented

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV21requestCancelOnDeinityACyxq_GyXlF":{"name":"requestCancelOnDeinit(_:)","abstract":"

      Requests that the Promise should be cancelled when the object deinits.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5ErrorR_rlE6upcastACyxsAD_pGvp":{"name":"upcast","abstract":"

      Returns a new promise with an error type of Swift.Error.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVA2A7NoErrorORs_rlE6upcastACyxs0D0_pGvp":{"name":"upcast","abstract":"

      Returns a new promise with an error type of Swift.Error.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE2on_ACyxsAD_pGAA0B7ContextO_yAC8ResolverVyxsAD_p_GKctcfc":{"name":"init(on:_:)","abstract":"

      Returns a new Promise that will be resolved using the given block.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE7tryThen2on5token_ACyxsAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgyxKctF":{"name":"tryThen(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE6tryMap2on5token_ACyqd__sAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgqd__xKctlF":{"name":"tryMap(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMap(on:token:_:)":{"name":"tryFlatMap(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE10tryFlatMap2on5token_ACyqd__sAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyqd__qd_0_GxKctsADRd_0_r0_lF":{"name":"tryFlatMap(on:token:_:)","abstract":"

      Registers a callback that is invoked when the promise is fulfilled.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE10tryRecover2on5token_ACyxsAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgxsAD_pKctF":{"name":"tryRecover(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

      Two Promises compare as equal if they represent the same promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV11cancellableAA0B11CancellableVvp":{"name":"cancellable","abstract":"

      Returns a value that can be used to cancel this promise without holding onto the full promise.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5ErrorR_rlE4withACyxq_Gs6ResultOyxq_G_tcfc":{"name":"init(with:)","abstract":"

      Returns a Promise that is already resolved with the given result.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9withTokenyAA0dB0Vyxq_GAA0b12InvalidationD0VF":{"name":"withToken(_:)","abstract":"

      Returns a new TokenPromise that wraps the receiver.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on9fulfilled5afterACyxq_GAA0B7ContextO_xSdtcfc":{"name":"init(on:fulfilled:after:)","abstract":"

      Returns a Promise that fulfills with the given value after a delay.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on8rejected5afterACyxq_GAA0B7ContextO_q_Sdtcfc":{"name":"init(on:rejected:after:)","abstract":"

      Returns a Promise that rejects with the given error after a delay.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on4with5afterACyxq_GAA0B7ContextO_AA0B6ResultOyxq_GSdtcfc":{"name":"init(on:with:after:)","abstract":"

      Returns a Promise that resolves with the given result after a delay.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV5delay2on_ACyxq_GAA0B7ContextO_SdtF":{"name":"delay(on:_:)","abstract":"

      Returns a new Promise that adopts the receiver’s result after a delay.

      ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7timeout2on5delayACyxAA0B12TimeoutErrorOyq_GGAA0B7ContextO_SdtF":{"name":"timeout(on:delay:)","abstract":"

      Returns a Promise that is rejected with an error if the receiver does not resolve within","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE7timeout2on5delayACyxsAD_pGAA0B7ContextO_SdtF":{"name":"timeout(on:delay:)","abstract":"

      Returns a Promise that is rejected with an error if the receiver does not resolve within","parent_name":"Promise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV8Resolvera":{"name":"Resolver","abstract":"

      The type of the promise resolver. See Promise<Value,Error>.Resolver.

      ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV2on_ACyxq_GAA0C7ContextO_yAA0C0V8ResolverVyxq__Gctcfc":{"name":"init(on:_:)","abstract":"

      Returns a new DelayedPromise that can be resolved with the given block.

      ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV7promiseAA0C0Vyxq_Gvp":{"name":"promise","abstract":"

      Returns a Promise that asynchronously contains the value of the computation.

      ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

      Two DelayedPromises compare as equal if they would produce equal Promises.

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

      DelayedPromise is like a Promise but it doesn’t invoke its callback until the .promise"},"Structs/Promise.html":{"name":"Promise","abstract":"

      A Promise is a construct that will eventually hold a value or error, and can invoke callbacks"},"Structs/PromiseCancellable.html":{"name":"PromiseCancellable","abstract":"

      A type that can be used to cancel a promise without holding onto the full promise.

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

      An invalidation token that can be used to cancel callbacks registered to a Promise.

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

      A Promise adapter that automatically applies a PromiseInvalidationToken.

      "},"Functions.html#/s:12Tomorrowland4when9fulfilled3qos15cancelOnFailureAA7PromiseVySayxGq_GSayAGyxq_GG_8Dispatch0I3QoSV0J6SClassOSbtr0_lF":{"name":"when(fulfilled:qos:cancelOnFailure:)","abstract":"

      Waits on an array of Promises and returns a Promise that is fulfilled with an array of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled_____3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_q2_q3_tq4_GAGyxq4_G_AGyq_q4_GAGyq0_q4_GAGyq1_q4_GAGyq2_q4_GAGyq3_q4_G8Dispatch0I3QoSV0J6SClassOSbtr5_lF":{"name":"when(fulfilled:_:_:_:_:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled____3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_q2_tq3_GAGyxq3_G_AGyq_q3_GAGyq0_q3_GAGyq1_q3_GAGyq2_q3_G8Dispatch0I3QoSV0J6SClassOSbtr4_lF":{"name":"when(fulfilled:_:_:_:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled___3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_tq2_GAGyxq2_G_AGyq_q2_GAGyq0_q2_GAGyq1_q2_G8Dispatch0I3QoSV0J6SClassOSbtr3_lF":{"name":"when(fulfilled:_:_:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled__3qos15cancelOnFailureAA7PromiseVyx_q_q0_tq1_GAGyxq1_G_AGyq_q1_GAGyq0_q1_G8Dispatch0I3QoSV0J6SClassOSbtr2_lF":{"name":"when(fulfilled:_:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled_3qos15cancelOnFailureAA7PromiseVyx_q_tq0_GAGyxq0_G_AGyq_q0_G8Dispatch0I3QoSV0J6SClassOSbtr1_lF":{"name":"when(fulfilled:_:qos:cancelOnFailure:)","abstract":"

      Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when5first15cancelRemainingAA7PromiseVyxq_GSayAGG_Sbtr0_lF":{"name":"when(first:cancelRemaining:)","abstract":"

      Returns a Promise that is resolved with the result of the first resolved input Promise.

      "},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorO8timedOutyACyxGAEmlF":{"name":"timedOut","abstract":"

      The promise did not resolve within the given interval.

      ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorO8rejectedyACyxGxcAEmlF":{"name":"rejected(_:)","abstract":"

      The promise was rejected with an error.

      ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:10Foundation13CustomNSErrorP13errorUserInfoSDySSypGvp":{"name":"errorUserInfo","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorOAASQRzlE2eeoiySbACyxG_AEtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorOAASQRzlE2neoiySbACyxG_AEtFZ":{"name":"!=(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are not equal.

      ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseTimeoutError"},"Enums/NoError.html#/s:12Tomorrowland7NoErrorO2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"NoError"},"Enums/NoError.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"NoError"},"Enums/NoError.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"NoError"},"Enums/NoError.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"NoError"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5valueyACyxq_GxcAEmr0_lF":{"name":"value(_:)","abstract":"

      The value the promise was fulfilled with.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5erroryACyxq_Gq_cAEmr0_lF":{"name":"error(_:)","abstract":"

      The error the promise was rejected with.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO9cancelledyACyxq_GAEmr0_lF":{"name":"cancelled","abstract":"

      The promise was cancelled.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5valuexSgvp":{"name":"value","abstract":"

      Returns the contained value if the result is .value, otherwise nil.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5errorq_Sgvp":{"name":"error","abstract":"

      Returns the contained error if the result is .error, otherwise nil.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO11isCancelledSbvp":{"name":"isCancelled","abstract":"

      Returns true if the result is .cancelled, otherwise false.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO3mapyACyqd__q_Gqd__xKXEKlF":{"name":"map(_:)","abstract":"

      Maps a successful result through a block and returns the new result.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO8mapErroryACyxqd__Gqd__q_KXEKlF":{"name":"mapError(_:)","abstract":"

      Maps a rejected result through a block and returns the new result.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO7flatMapyACyqd__q_GAExKXEKlF":{"name":"flatMap(_:)","abstract":"

      Maps a successful result through a block and returns the new result.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO12flatMapErroryACyxqd__GAEq_KXEKlF":{"name":"flatMapError(_:)","abstract":"

      Maps a rejected result through a block and returns the new result.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAASQRzSQR_rlE2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAASQRzSQR_rlE2neoiySbACyxq_G_AEtFZ":{"name":"!=(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are not equal.

      ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAAs5ErrorR_rlEyACyxq_Gs0C0Oyxq_Gcfc":{"name":"init(_:)","abstract":"

      Returns a PromiseResult from a Result.

      ","parent_name":"PromiseResult"},"Enums/PromiseCallbackError.html#/c:@M@Tomorrowland@E@TWLPromiseCallbackError@TWLPromiseCallbackErrorAPIMismatch":{"name":"apiMismatch","abstract":"

      The callback did not conform to the expected API.

      ","parent_name":"PromiseCallbackError"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO4mainyA2CmF":{"name":"main","abstract":"

      Execute on the main queue.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO10backgroundyA2CmF":{"name":"background","abstract":"

      Execute on a dispatch queue with the .background QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO7utilityyA2CmF":{"name":"utility","abstract":"

      Execute on a dispatch queue with the .utility QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO7defaultyA2CmF":{"name":"default","abstract":"

      Execute on a dispatch queue with the .default QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO13userInitiatedyA2CmF":{"name":"userInitiated","abstract":"

      Execute on a dispatch queue with the .userInitiated QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO15userInteractiveyA2CmF":{"name":"userInteractive","abstract":"

      Execute on a dispatch queue with the .userInteractive QoS.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO5queueyACSo012OS_dispatch_D0CcACmF":{"name":"queue(_:)","abstract":"

      Execute on the specified dispatch queue.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO14operationQueueyACSo011NSOperationE0CcACmF":{"name":"operationQueue(_:)","abstract":"

      Execute on the specified operation queue.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO9immediateyA2CmF":{"name":"immediate","abstract":"

      Execute synchronously.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO4autoACvpZ":{"name":"auto","abstract":"

      Returns .main when accessed from the main thread, otherwise .default.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO3qosAC8Dispatch0E3QoSV0F6SClassO_tcfc":{"name":"init(qos:)","abstract":"

      Returns the PromiseContext that corresponds to a given Dispatch QoS class.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

      Returns a Boolean value indicating whether two values are equal.

      ","parent_name":"PromiseContext"},"Enums/PromiseContext.html":{"name":"PromiseContext","abstract":"

      The context in which a Promise body or callback is evaluated.

      "},"Enums/PromiseCallbackError.html":{"name":"PromiseCallbackError","abstract":"

      An error potentially returned from Promise.Resolver.handleCallback(isCancelError:).

      "},"Enums/PromiseResult.html":{"name":"PromiseResult","abstract":"

      The result of a resolved promise.

      "},"Enums/NoError.html":{"name":"NoError","abstract":"

      NoError is a type that cannot be constructed.

      "},"Enums/PromiseTimeoutError.html":{"name":"PromiseTimeoutError","abstract":"

      The error type returned from Promise.timeout.

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

      The following enumerations are available globally.

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

      The following functions are available globally.

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

      The following structures are available globally.

      "},"Typealiases.html":{"name":"Type Aliases","abstract":"

      The following type aliases are available globally.

      "}} \ No newline at end of file diff --git a/docs/docsets/Tomorrowland.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Tomorrowland.docset/Contents/Resources/docSet.dsidx index 86e5e0a..84dc06d 100644 Binary files a/docs/docsets/Tomorrowland.docset/Contents/Resources/docSet.dsidx and b/docs/docsets/Tomorrowland.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/docsets/Tomorrowland.tgz b/docs/docsets/Tomorrowland.tgz index 41afa40..ed44768 100644 Binary files a/docs/docsets/Tomorrowland.tgz and b/docs/docsets/Tomorrowland.tgz differ diff --git a/docs/index.html b/docs/index.html index fa2a3ec..fb862bb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -115,7 +115,7 @@

      Tomorrowland

      -

      Version +

      Version Platforms Languages License @@ -156,11 +156,17 @@

      Manually

      You can add Tomorrowland to your workspace manually like any other project and add the resulting Tomorrowland.framework to your application’s frameworks.

      Carthage

      -
      github "lilyball/Tomorrowland" ~> 0.5.0
      +
      github "lilyball/Tomorrowland" ~> 1.0
       
      + +

      The project file is configured to use Swift 5. The code can be compiled against Swift 4.2 instead, but I’m not aware of any way to instruct Carthage to override the +swift version during compilation.

      CocoaPods

      -
      pod 'Tomorrowland', '~> 0.5.0'
      +
      pod 'Tomorrowland', '~> 1.0'
       
      + +

      The podspec declares support for both Swift 4.2 and Swift 5.0, but selecting the Swift version requires using CoocaPods 1.7.0 or later. When using CocoaPods 1.6 +or earlier the Swift version will default to 5.0.

      SwiftPM

      Tomorrowland currently relies on a private Obj-C module for its atomics. This arrangement means it is not compatible with Swift Package Manager (as adding @@ -328,6 +334,14 @@

      Cancelling and Invalidation } }

      +

      Invalidation token chaining

      + +

      PromiseInvalidationTokens can be arranged in a tree such that invalidating one token will cascade this invalidation down to other tokens. This is +accomplished by calling childToken.chainInvalidation(from: parentToken). Practically speaking this is no different than just manually invalidating each +child token yourself after invalidating the parent token, but it’s provided as a convenience to make it easy to have fine-grained invalidation control while also having +a simple way to bulk-invalidate tokens. For example, you might have separate tokens for different view controllers that all chain invalidation from a single token that +gets invalidated when the user logs out, thus automatically invalidating all your user-dependent network requests at once while still allowing each view controller the +ability to invalidate just its own requests independently.

      TokenPromise

      In order to avoid the repetition of passing a PromiseInvalidationToken to multiple Promise methods as well as cancelling the resulting promise, a type @@ -430,6 +444,23 @@

      Contribution

      Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.

      Version History

      +

      v1.0.0

      + +
        +
      • Fix a rather serious bug where PromiseInvalidationTokens would not deinit as long as any promise whose callback was tied to the token was still unresolved. +This meant that the default invalidateOnDeinit behavior would not trigger and the callback would still fire even though there were no more external references +to the token, and this meant any promises configured to be cancelled when the promise invalidated would not cancel. Tokens used purely for +requestCancelOnInvalidate(_:) would still deallocate, and tokens would still deallocate after any associated promises had resolved.
      • +
      • Tweak the atomic memory ordering used in PromiseInvalidationTokens. After a careful re-reading I don’t believe I was issuing the correct fences previously, +making it possible for tokens whose associated promise callbacks were executing concurrently with a call to requestCancelOnInvalidate(_:) to read the +wrong generation value, and for tokens that had requestCancelOnInvalidate(_:) invoked concurrently on multiple threads to corrupt the generation.
      • +
      • Add PromiseInvalidationToken.chainInvalidation(from:) to invalidate a token whenever another token invalidates. This allows for building a tree of +tokens in order to have both fine-grained and bulk invalidation at the same time. Tokens chained together this way stay chained forever (#43).
      • +
      • Update project file to Swift 5.0. The source already supported this. This change should only affect people using Carthage or anyone adding building this +framework from source.
      • +
      • Update the podspec to list both Swift 4.2 and Swift 5.0. With CocoaPods 1.7.0 or later your Podfile can now declare which version of Swift it’s compatible with. +For anyone using CocoaPods 1.6 or earlier it will default to Swift 5.0.
      • +

      v0.6.0

        @@ -551,7 +582,7 @@

        v0.1

        diff --git a/docs/search.json b/docs/search.json index 73120a3..3a0ff68 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Typealiases.html#/s:12Tomorrowland17StdDelayedPromisea":{"name":"StdDelayedPromise","abstract":"

        StdDelayedPromise is an alias for a DelayedPromise whose error type is Swift.Error.

        "},"Typealiases.html#/s:12Tomorrowland10StdPromisea":{"name":"StdPromise","abstract":"

        StdPromise is an alias for a Promise whose error type is Swift.Error.

        "},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5innerAA0C0Vyxq_Gvp":{"name":"inner","abstract":"

        The wrapped Promise.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5tokenAA0c12InvalidationB0Vvp":{"name":"token","abstract":"

        The PromiseInvalidationToken to use when invoking methods on the wrapped Promise.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7promise5tokenACyxq_GAA0C0Vyxq_G_AA0c12InvalidationB0Vtcfc":{"name":"init(promise:token:)","abstract":"

        Returns a new TokenPromise that wraps the given promise.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV4then2on_ACyxq_GAA0C7ContextO_yxctF":{"name":"then(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3map2on_ACyqd__q_GAA0C7ContextO_qd__xctlF":{"name":"map(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7flatMap2on_ACyqd__q_GAA0C7ContextO_AA0C0Vyqd__q_GxctlF":{"name":"flatMap(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5catch2on_ACyxq_GAA0C7ContextO_yq_ctF":{"name":"catch(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is rejected.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7recover2on_ACyxAA7NoErrorOGAA0C7ContextO_xq_ctF":{"name":"recover(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV8mapError2on_ACyxqd__GAA0C7ContextO_qd__q_ctlF":{"name":"mapError(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV12flatMapError2on_ACyxqd__GAA0C7ContextO_AA0C0Vyxqd__Gq_ctlF":{"name":"flatMapError(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV11tryMapError2on_ACyxs0F0_pGAA0C7ContextO_qd__q_KctsAFRd__lF":{"name":"tryMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV15tryFlatMapError2on_ACyxs0G0_pGAA0C7ContextO_AA0C0Vyxqd__Gq_KctsAFRd__lF":{"name":"tryFlatMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryMapError(on:_:)":{"name":"tryMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMapError(on:_:)":{"name":"tryFlatMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV6always2on_ACyxq_GAA0C7ContextO_yAA0C6ResultOyxq_GctF":{"name":"always(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV9mapResult2on0F8CompleteACyqd__qd_0_GAA0C7ContextO_AA0cE0Oyqd__qd_0_GAKyxq_Gctr0_lF":{"name":"mapResult(on:onComplete:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV13flatMapResult2on_ACyqd__qd_0_GAA0C7ContextO_AA0C0Vyqd__qd_0_GAA0cF0Oyxq_Gctr0_lF":{"name":"flatMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV12tryMapResult2on_ACyqd__s5Error_pGAA0C7ContextO_AA0cF0Oyqd__qd_0_GAKyxq_GKctsAFRd_0_r0_lF":{"name":"tryMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV16tryFlatMapResult2on_ACyqd__s5Error_pGAA0C7ContextO_AA0C0Vyqd__qd_0_GAA0cG0Oyxq_GKctsAFRd_0_r0_lF":{"name":"tryFlatMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryMapResult(on:_:)":{"name":"tryMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMapResult(on:_:)":{"name":"tryFlatMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3tap2on_ACyxq_GAA0C7ContextO_yAA0C6ResultOyxq_GctF":{"name":"tap(on:_:)","abstract":"

        Registers a callback that will be invoked when the promise is resolved without affecting behavior.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3tapACyxq_GyF":{"name":"tap()","abstract":"

        Returns a new TokenPromise that adopts the result of the receiver without affecting its","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV8onCancel0D0_ACyxq_GAA0C7ContextO_yyctF":{"name":"onCancel(on:_:)","abstract":"

        Registers a callback that will be invoked when the promise is cancelled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV4forkyACyxq_GyAEKXEKF":{"name":"fork(_:)","abstract":"

        Passes the TokenPromise to a block and then returns the TokenPromise for further","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV14ignoringCancelACyxq_GyF":{"name":"ignoringCancel()","abstract":"

        Returns a new TokenPromise that adopts the value of the receiver but ignores cancel","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE7tryThen2on_ACyxsAD_pGAA0C7ContextO_yxKctF":{"name":"tryThen(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE6tryMap2on_ACyqd__sAD_pGAA0C7ContextO_qd__xKctlF":{"name":"tryMap(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMap(on:_:)":{"name":"tryFlatMap(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE10tryFlatMap2on_ACyqd__sAD_pGAA0C7ContextO_AA0C0Vyqd__qd_0_GxKctsADRd_0_r0_lF":{"name":"tryFlatMap(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE10tryRecover2on_ACyxsAD_pGAA0C7ContextO_xsAD_pKctF":{"name":"tryRecover(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE010tryFlatMapD02on_ACyxsAD_pGAA0C7ContextO_AA0C0Vyxqd__GsAD_pKctsADRd__lF":{"name":"tryFlatMapError(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

        Two TokenPromises compare as equal if they represent the same promise.

        ","parent_name":"TokenPromise"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV18invalidateOnDeinitACSb_tcfc":{"name":"init(invalidateOnDeinit:)","abstract":"

        Creates and returns a new PromiseInvalidationToken.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV10invalidateyyF":{"name":"invalidate()","abstract":"

        Invalidates the token and cancels any associated promises.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25cancelWithoutInvalidatingyyF":{"name":"cancelWithoutInvalidating()","abstract":"

        Cancels any associated promises without invalidating the token.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25requestCancelOnInvalidateyyAA0B0Vyxq_Gr0_lF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

        Registers a Promise to be requested to cancel automatically when the token is invalidated.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25requestCancelOnInvalidateyySo10TWLPromiseCyxq_GRlzCRl_Cr0_lF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

        Registers an ObjCPromise to be requested to cancel automatically when the token is","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseInvalidationToken"},"Structs/PromiseCancellable.html#/s:12Tomorrowland18PromiseCancellableV13requestCancelyyF":{"name":"requestCancel()","abstract":"

        Requests cancellation of the promise this PromiseCancellable was created from.

        ","parent_name":"PromiseCancellable"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7fulfill4withyx_tF":{"name":"fulfill(with:)","abstract":"

        Fulfills the promise with the given value.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV6reject4withyq__tF":{"name":"reject(with:)","abstract":"

        Rejects the promise with the given error.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV6cancelyyF":{"name":"cancel()","abstract":"

        Cancels the promise.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7resolve4withyAA0B6ResultOyxq_G_tF":{"name":"resolve(with:)","abstract":"

        Resolves the promise with the given result.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7resolve4withyACyxq_G_tF":{"name":"resolve(with:)","abstract":"

        Resolves the promise with another promise.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV15onRequestCancel0D0_yAA0B7ContextO_yAEyxq__GctF":{"name":"onRequestCancel(on:_:)","abstract":"

        Registers a block that will be invoked if requestCancel() is invoked on the promise","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5Error_pRs_rlE7resolve4withyAA0B6ResultOyxqd__G_tsAFRd__lF":{"name":"resolve(with:)","abstract":"

        Resolves the promise with the given result.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5Error_pRs_rlE14handleCallback08isCancelD0yxSg_sAF_pSgtcSbsAF_pc_tF":{"name":"handleCallback(isCancelError:)","abstract":"

        Convenience method for handling framework callbacks.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5ErrorR_rlE7resolve4withys6ResultOyxq_G_tF":{"name":"resolve(with:)","abstract":"

        Resolves the promise with the given result.

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

        A Resolver is used to fulfill, reject, or cancel its associated Promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6resultAA0B6ResultOyxq_GSgvp":{"name":"result","abstract":"

        Returns the result of the promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV16makeWithResolverACyxq_G_AC0E0Vyxq__GtyFZ":{"name":"makeWithResolver()","abstract":"

        Returns a Promise and a Promise.Resolver that can be used to fulfill that promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on_ACyxq_GAA0B7ContextO_yAC8ResolverVyxq__Gctcfc":{"name":"init(on:_:)","abstract":"

        Returns a new Promise that will be resolved using the given block.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9fulfilledACyxq_Gx_tcfc":{"name":"init(fulfilled:)","abstract":"

        Returns a Promise that is already fulfilled with the given value.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8rejectedACyxq_Gq__tcfc":{"name":"init(rejected:)","abstract":"

        Returns a Promise that is already rejected with the given error.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4withACyxq_GAA0B6ResultOyxq_G_tcfc":{"name":"init(with:)","abstract":"

        Returns a Promise that is already resolved with the given result.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4then2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyxctF":{"name":"then(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3map2on5token_ACyqd__q_GAA0B7ContextO_AA0B17InvalidationTokenVSgqd__xctlF":{"name":"map(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7flatMap2on5token_ACyqd__q_GAA0B7ContextO_AA0B17InvalidationTokenVSgAGxctlF":{"name":"flatMap(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV5catch2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyq_ctF":{"name":"catch(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is rejected.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7recover2on5token_ACyxAA7NoErrorOGAA0B7ContextO_AA0B17InvalidationTokenVSgxq_ctF":{"name":"recover(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8mapError2on5token_ACyxqd__GAA0B7ContextO_AA0B17InvalidationTokenVSgqd__q_ctlF":{"name":"mapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV12flatMapError2on5token_ACyxqd__GAA0B7ContextO_AA0B17InvalidationTokenVSgAGq_ctlF":{"name":"flatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV11tryMapError2on5token_ACyxs0E0_pGAA0B7ContextO_AA0B17InvalidationTokenVSgqd__q_KctsAGRd__lF":{"name":"tryMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV15tryFlatMapError2on5token_ACyxs0F0_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyxqd__Gq_KctsAGRd__lF":{"name":"tryFlatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/tryMapError(on:token:_:)":{"name":"tryMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMapError(on:token:_:)":{"name":"tryFlatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6always2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyAA0B6ResultOyxq_GctF":{"name":"always(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9mapResult2on5token_ACyqd__qd_0_GAA0B7ContextO_AA0B17InvalidationTokenVSgAA0bD0Oyqd__qd_0_GANyxq_Gctr0_lF":{"name":"mapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV13flatMapResult2on5token_ACyqd__qd_0_GAA0B7ContextO_AA0B17InvalidationTokenVSgAgA0bE0Oyxq_Gctr0_lF":{"name":"flatMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV12tryMapResult2on5token_ACyqd__s5Error_pGAA0B7ContextO_AA0B17InvalidationTokenVSgAA0bE0Oyqd__qd_0_GAOyxq_GKctsAGRd_0_r0_lF":{"name":"tryMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV16tryFlatMapResult2on5token_ACyqd__s5Error_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyqd__qd_0_GAA0bF0Oyxq_GKctsAGRd_0_r0_lF":{"name":"tryFlatMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/tryMapResult(on:token:_:)":{"name":"tryMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMapResult(on:token:_:)":{"name":"tryFlatMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3tap2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyAA0B6ResultOyxq_GctF":{"name":"tap(on:token:_:)","abstract":"

        Registers a callback that will be invoked when the promise is resolved without affecting behavior.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3tapACyxq_GyF":{"name":"tap()","abstract":"

        Returns a new Promise that adopts the result of the receiver without affecting its behavior.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8onCancel0C05token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyyctF":{"name":"onCancel(on:token:_:)","abstract":"

        Registers a callback that will be invoked when the promise is cancelled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4forkyACyxq_GyAEKXEKF":{"name":"fork(_:)","abstract":"

        Passes the Promise to a block and then returns the Promise for further chaining.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV13requestCancelyyF":{"name":"requestCancel()","abstract":"

        Requests that the Promise should be cancelled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV25requestCancelOnInvalidateyACyxq_GAA0B17InvalidationTokenVF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

        Requests that the Promise should be cancelled when the token is invalidated.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV14ignoringCancelACyxq_GyF":{"name":"ignoringCancel()","abstract":"

        Returns a new Promise that adopts the value of the receiver but ignores cancel requests.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6resultACyxq_GAA0B6ResultOyxq_G_tcfc":{"name":"init(result:)","abstract":"

        Undocumented

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on6result5afterACyxq_GAA0B7ContextO_AA0B6ResultOyxq_GSdtcfc":{"name":"init(on:result:after:)","abstract":"

        Undocumented

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV21requestCancelOnDeinityACyxq_GyXlF":{"name":"requestCancelOnDeinit(_:)","abstract":"

        Requests that the Promise should be cancelled when the object deinits.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5ErrorR_rlE6upcastACyxsAD_pGvp":{"name":"upcast","abstract":"

        Returns a new promise with an error type of Swift.Error.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVA2A7NoErrorORs_rlE6upcastACyxs0D0_pGvp":{"name":"upcast","abstract":"

        Returns a new promise with an error type of Swift.Error.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE2on_ACyxsAD_pGAA0B7ContextO_yAC8ResolverVyxsAD_p_GKctcfc":{"name":"init(on:_:)","abstract":"

        Returns a new Promise that will be resolved using the given block.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE7tryThen2on5token_ACyxsAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgyxKctF":{"name":"tryThen(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE6tryMap2on5token_ACyqd__sAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgqd__xKctlF":{"name":"tryMap(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMap(on:token:_:)":{"name":"tryFlatMap(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE10tryFlatMap2on5token_ACyqd__sAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyqd__qd_0_GxKctsADRd_0_r0_lF":{"name":"tryFlatMap(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE10tryRecover2on5token_ACyxsAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgxsAD_pKctF":{"name":"tryRecover(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

        Two Promises compare as equal if they represent the same promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV11cancellableAA0B11CancellableVvp":{"name":"cancellable","abstract":"

        Returns a value that can be used to cancel this promise without holding onto the full promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5ErrorR_rlE4withACyxq_Gs6ResultOyxq_G_tcfc":{"name":"init(with:)","abstract":"

        Returns a Promise that is already resolved with the given result.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9withTokenyAA0dB0Vyxq_GAA0b12InvalidationD0VF":{"name":"withToken(_:)","abstract":"

        Returns a new TokenPromise that wraps the receiver.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on9fulfilled5afterACyxq_GAA0B7ContextO_xSdtcfc":{"name":"init(on:fulfilled:after:)","abstract":"

        Returns a Promise that fulfills with the given value after a delay.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on8rejected5afterACyxq_GAA0B7ContextO_q_Sdtcfc":{"name":"init(on:rejected:after:)","abstract":"

        Returns a Promise that rejects with the given error after a delay.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on4with5afterACyxq_GAA0B7ContextO_AA0B6ResultOyxq_GSdtcfc":{"name":"init(on:with:after:)","abstract":"

        Returns a Promise that resolves with the given result after a delay.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV5delay2on_ACyxq_GAA0B7ContextO_SdtF":{"name":"delay(on:_:)","abstract":"

        Returns a new Promise that adopts the receiver’s result after a delay.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7timeout2on5delayACyxAA0B12TimeoutErrorOyq_GGAA0B7ContextO_SdtF":{"name":"timeout(on:delay:)","abstract":"

        Returns a Promise that is rejected with an error if the receiver does not resolve within","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE7timeout2on5delayACyxsAD_pGAA0B7ContextO_SdtF":{"name":"timeout(on:delay:)","abstract":"

        Returns a Promise that is rejected with an error if the receiver does not resolve within","parent_name":"Promise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV8Resolvera":{"name":"Resolver","abstract":"

        The type of the promise resolver. See Promise<Value,Error>.Resolver.

        ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV2on_ACyxq_GAA0C7ContextO_yAA0C0V8ResolverVyxq__Gctcfc":{"name":"init(on:_:)","abstract":"

        Returns a new DelayedPromise that can be resolved with the given block.

        ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV7promiseAA0C0Vyxq_Gvp":{"name":"promise","abstract":"

        Returns a Promise that asynchronously contains the value of the computation.

        ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

        Two DelayedPromises compare as equal if they would produce equal Promises.

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

        DelayedPromise is like a Promise but it doesn’t invoke its callback until the .promise"},"Structs/Promise.html":{"name":"Promise","abstract":"

        A Promise is a construct that will eventually hold a value or error, and can invoke callbacks"},"Structs/PromiseCancellable.html":{"name":"PromiseCancellable","abstract":"

        A type that can be used to cancel a promise without holding onto the full promise.

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

        An invalidation token that can be used to cancel callbacks registered to a Promise.

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

        A Promise adapter that automatically applies a PromiseInvalidationToken.

        "},"Functions.html#/s:12Tomorrowland4when9fulfilled3qos15cancelOnFailureAA7PromiseVySayxGq_GSayAGyxq_GG_8Dispatch0I3QoSV0J6SClassOSbtr0_lF":{"name":"when(fulfilled:qos:cancelOnFailure:)","abstract":"

        Waits on an array of Promises and returns a Promise that is fulfilled with an array of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled_____3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_q2_q3_tq4_GAGyxq4_G_AGyq_q4_GAGyq0_q4_GAGyq1_q4_GAGyq2_q4_GAGyq3_q4_G8Dispatch0I3QoSV0J6SClassOSbtr5_lF":{"name":"when(fulfilled:_:_:_:_:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled____3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_q2_tq3_GAGyxq3_G_AGyq_q3_GAGyq0_q3_GAGyq1_q3_GAGyq2_q3_G8Dispatch0I3QoSV0J6SClassOSbtr4_lF":{"name":"when(fulfilled:_:_:_:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled___3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_tq2_GAGyxq2_G_AGyq_q2_GAGyq0_q2_GAGyq1_q2_G8Dispatch0I3QoSV0J6SClassOSbtr3_lF":{"name":"when(fulfilled:_:_:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled__3qos15cancelOnFailureAA7PromiseVyx_q_q0_tq1_GAGyxq1_G_AGyq_q1_GAGyq0_q1_G8Dispatch0I3QoSV0J6SClassOSbtr2_lF":{"name":"when(fulfilled:_:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled_3qos15cancelOnFailureAA7PromiseVyx_q_tq0_GAGyxq0_G_AGyq_q0_G8Dispatch0I3QoSV0J6SClassOSbtr1_lF":{"name":"when(fulfilled:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when5first15cancelRemainingAA7PromiseVyxq_GSayAGG_Sbtr0_lF":{"name":"when(first:cancelRemaining:)","abstract":"

        Returns a Promise that is resolved with the result of the first resolved input Promise.

        "},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorO8timedOutyACyxGAEmlF":{"name":"timedOut","abstract":"

        The promise did not resolve within the given interval.

        ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorO8rejectedyACyxGxcAEmlF":{"name":"rejected(_:)","abstract":"

        The promise was rejected with an error.

        ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:10Foundation13CustomNSErrorP13errorUserInfoSDySSypGvp":{"name":"errorUserInfo","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorOAASQRzlE2eeoiySbACyxG_AEtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorOAASQRzlE2neoiySbACyxG_AEtFZ":{"name":"!=(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are not equal.

        ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseTimeoutError"},"Enums/NoError.html#/s:12Tomorrowland7NoErrorO2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"NoError"},"Enums/NoError.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"NoError"},"Enums/NoError.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"NoError"},"Enums/NoError.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"NoError"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5valueyACyxq_GxcAEmr0_lF":{"name":"value(_:)","abstract":"

        The value the promise was fulfilled with.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5erroryACyxq_Gq_cAEmr0_lF":{"name":"error(_:)","abstract":"

        The error the promise was rejected with.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO9cancelledyACyxq_GAEmr0_lF":{"name":"cancelled","abstract":"

        The promise was cancelled.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5valuexSgvp":{"name":"value","abstract":"

        Returns the contained value if the result is .value, otherwise nil.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5errorq_Sgvp":{"name":"error","abstract":"

        Returns the contained error if the result is .error, otherwise nil.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO11isCancelledSbvp":{"name":"isCancelled","abstract":"

        Returns true if the result is .cancelled, otherwise false.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO3mapyACyqd__q_Gqd__xKXEKlF":{"name":"map(_:)","abstract":"

        Maps a successful result through a block and returns the new result.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO8mapErroryACyxqd__Gqd__q_KXEKlF":{"name":"mapError(_:)","abstract":"

        Maps a rejected result through a block and returns the new result.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO7flatMapyACyqd__q_GAExKXEKlF":{"name":"flatMap(_:)","abstract":"

        Maps a successful result through a block and returns the new result.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO12flatMapErroryACyxqd__GAEq_KXEKlF":{"name":"flatMapError(_:)","abstract":"

        Maps a rejected result through a block and returns the new result.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAASQRzSQR_rlE2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAASQRzSQR_rlE2neoiySbACyxq_G_AEtFZ":{"name":"!=(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are not equal.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAAs5ErrorR_rlEyACyxq_Gs0C0Oyxq_Gcfc":{"name":"init(_:)","abstract":"

        Returns a PromiseResult from a Result.

        ","parent_name":"PromiseResult"},"Enums/PromiseCallbackError.html#/c:@M@Tomorrowland@E@TWLPromiseCallbackError@TWLPromiseCallbackErrorAPIMismatch":{"name":"apiMismatch","abstract":"

        The callback did not conform to the expected API.

        ","parent_name":"PromiseCallbackError"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO4mainyA2CmF":{"name":"main","abstract":"

        Execute on the main queue.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO10backgroundyA2CmF":{"name":"background","abstract":"

        Execute on a dispatch queue with the .background QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO7utilityyA2CmF":{"name":"utility","abstract":"

        Execute on a dispatch queue with the .utility QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO7defaultyA2CmF":{"name":"default","abstract":"

        Execute on a dispatch queue with the .default QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO13userInitiatedyA2CmF":{"name":"userInitiated","abstract":"

        Execute on a dispatch queue with the .userInitiated QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO15userInteractiveyA2CmF":{"name":"userInteractive","abstract":"

        Execute on a dispatch queue with the .userInteractive QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO5queueyACSo012OS_dispatch_D0CcACmF":{"name":"queue(_:)","abstract":"

        Execute on the specified dispatch queue.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO14operationQueueyACSo011NSOperationE0CcACmF":{"name":"operationQueue(_:)","abstract":"

        Execute on the specified operation queue.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO9immediateyA2CmF":{"name":"immediate","abstract":"

        Execute synchronously.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO4autoACvpZ":{"name":"auto","abstract":"

        Returns .main when accessed from the main thread, otherwise .default.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO3qosAC8Dispatch0E3QoSV0F6SClassO_tcfc":{"name":"init(qos:)","abstract":"

        Returns the PromiseContext that corresponds to a given Dispatch QoS class.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html":{"name":"PromiseContext","abstract":"

        The context in which a Promise body or callback is evaluated.

        "},"Enums/PromiseCallbackError.html":{"name":"PromiseCallbackError","abstract":"

        An error potentially returned from Promise.Resolver.handleCallback(isCancelError:).

        "},"Enums/PromiseResult.html":{"name":"PromiseResult","abstract":"

        The result of a resolved promise.

        "},"Enums/NoError.html":{"name":"NoError","abstract":"

        NoError is a type that cannot be constructed.

        "},"Enums/PromiseTimeoutError.html":{"name":"PromiseTimeoutError","abstract":"

        The error type returned from Promise.timeout.

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

        The following enumerations are available globally.

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

        The following functions are available globally.

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

        The following structures are available globally.

        "},"Typealiases.html":{"name":"Type Aliases","abstract":"

        The following type aliases are available globally.

        "}} \ No newline at end of file +{"Typealiases.html#/s:12Tomorrowland17StdDelayedPromisea":{"name":"StdDelayedPromise","abstract":"

        StdDelayedPromise is an alias for a DelayedPromise whose error type is Swift.Error.

        "},"Typealiases.html#/s:12Tomorrowland10StdPromisea":{"name":"StdPromise","abstract":"

        StdPromise is an alias for a Promise whose error type is Swift.Error.

        "},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5innerAA0C0Vyxq_Gvp":{"name":"inner","abstract":"

        The wrapped Promise.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5tokenAA0c12InvalidationB0Vvp":{"name":"token","abstract":"

        The PromiseInvalidationToken to use when invoking methods on the wrapped Promise.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7promise5tokenACyxq_GAA0C0Vyxq_G_AA0c12InvalidationB0Vtcfc":{"name":"init(promise:token:)","abstract":"

        Returns a new TokenPromise that wraps the given promise.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV4then2on_ACyxq_GAA0C7ContextO_yxctF":{"name":"then(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3map2on_ACyqd__q_GAA0C7ContextO_qd__xctlF":{"name":"map(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7flatMap2on_ACyqd__q_GAA0C7ContextO_AA0C0Vyqd__q_GxctlF":{"name":"flatMap(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV5catch2on_ACyxq_GAA0C7ContextO_yq_ctF":{"name":"catch(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is rejected.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV7recover2on_ACyxAA7NoErrorOGAA0C7ContextO_xq_ctF":{"name":"recover(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV8mapError2on_ACyxqd__GAA0C7ContextO_qd__q_ctlF":{"name":"mapError(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV12flatMapError2on_ACyxqd__GAA0C7ContextO_AA0C0Vyxqd__Gq_ctlF":{"name":"flatMapError(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV11tryMapError2on_ACyxs0F0_pGAA0C7ContextO_qd__q_KctsAFRd__lF":{"name":"tryMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV15tryFlatMapError2on_ACyxs0G0_pGAA0C7ContextO_AA0C0Vyxqd__Gq_KctsAFRd__lF":{"name":"tryFlatMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryMapError(on:_:)":{"name":"tryMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMapError(on:_:)":{"name":"tryFlatMapError(on:_:)","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV6always2on_ACyxq_GAA0C7ContextO_yAA0C6ResultOyxq_GctF":{"name":"always(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV9mapResult2on0F8CompleteACyqd__qd_0_GAA0C7ContextO_AA0cE0Oyqd__qd_0_GAKyxq_Gctr0_lF":{"name":"mapResult(on:onComplete:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV13flatMapResult2on_ACyqd__qd_0_GAA0C7ContextO_AA0C0Vyqd__qd_0_GAA0cF0Oyxq_Gctr0_lF":{"name":"flatMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV12tryMapResult2on_ACyqd__s5Error_pGAA0C7ContextO_AA0cF0Oyqd__qd_0_GAKyxq_GKctsAFRd_0_r0_lF":{"name":"tryMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV16tryFlatMapResult2on_ACyqd__s5Error_pGAA0C7ContextO_AA0C0Vyqd__qd_0_GAA0cG0Oyxq_GKctsAFRd_0_r0_lF":{"name":"tryFlatMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryMapResult(on:_:)":{"name":"tryMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMapResult(on:_:)":{"name":"tryFlatMapResult(on:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3tap2on_ACyxq_GAA0C7ContextO_yAA0C6ResultOyxq_GctF":{"name":"tap(on:_:)","abstract":"

        Registers a callback that will be invoked when the promise is resolved without affecting behavior.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV3tapACyxq_GyF":{"name":"tap()","abstract":"

        Returns a new TokenPromise that adopts the result of the receiver without affecting its","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV8onCancel0D0_ACyxq_GAA0C7ContextO_yyctF":{"name":"onCancel(on:_:)","abstract":"

        Registers a callback that will be invoked when the promise is cancelled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV4forkyACyxq_GyAEKXEKF":{"name":"fork(_:)","abstract":"

        Passes the TokenPromise to a block and then returns the TokenPromise for further","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV14ignoringCancelACyxq_GyF":{"name":"ignoringCancel()","abstract":"

        Returns a new TokenPromise that adopts the value of the receiver but ignores cancel","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE7tryThen2on_ACyxsAD_pGAA0C7ContextO_yxKctF":{"name":"tryThen(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE6tryMap2on_ACyqd__sAD_pGAA0C7ContextO_qd__xKctlF":{"name":"tryMap(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/tryFlatMap(on:_:)":{"name":"tryFlatMap(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE10tryFlatMap2on_ACyqd__sAD_pGAA0C7ContextO_AA0C0Vyqd__qd_0_GxKctsADRd_0_r0_lF":{"name":"tryFlatMap(on:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE10tryRecover2on_ACyxsAD_pGAA0C7ContextO_xsAD_pKctF":{"name":"tryRecover(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseVAAs5Error_pRs_rlE010tryFlatMapD02on_ACyxsAD_pGAA0C7ContextO_AA0C0Vyxqd__GsAD_pKctsADRd__lF":{"name":"tryFlatMapError(on:_:)","abstract":"
        ","parent_name":"TokenPromise"},"Structs/TokenPromise.html#/s:12Tomorrowland12TokenPromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

        Two TokenPromises compare as equal if they represent the same promise.

        ","parent_name":"TokenPromise"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV18invalidateOnDeinitACSb_tcfc":{"name":"init(invalidateOnDeinit:)","abstract":"

        Creates and returns a new PromiseInvalidationToken.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV10invalidateyyF":{"name":"invalidate()","abstract":"

        Invalidates the token and cancels any associated promises.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25cancelWithoutInvalidatingyyF":{"name":"cancelWithoutInvalidating()","abstract":"

        Cancels any associated promises without invalidating the token.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25requestCancelOnInvalidateyyAA0B0Vyxq_Gr0_lF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

        Registers a Promise to be requested to cancel automatically when the token is invalidated.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV25requestCancelOnInvalidateyySo10TWLPromiseCyxq_GRlzCRl_Cr0_lF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

        Registers an ObjCPromise to be requested to cancel automatically when the token is","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV05chainC04from34includingCancelWithoutInvalidatingyAC_SbtF":{"name":"chainInvalidation(from:includingCancelWithoutInvalidating:)","abstract":"

        Invalidates the token whenever another token is invalidated.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:s23CustomStringConvertibleP11descriptionSSvp":{"name":"description","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:12Tomorrowland24PromiseInvalidationTokenV2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"PromiseInvalidationToken"},"Structs/PromiseInvalidationToken.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseInvalidationToken"},"Structs/PromiseCancellable.html#/s:12Tomorrowland18PromiseCancellableV13requestCancelyyF":{"name":"requestCancel()","abstract":"

        Requests cancellation of the promise this PromiseCancellable was created from.

        ","parent_name":"PromiseCancellable"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7fulfill4withyx_tF":{"name":"fulfill(with:)","abstract":"

        Fulfills the promise with the given value.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV6reject4withyq__tF":{"name":"reject(with:)","abstract":"

        Rejects the promise with the given error.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV6cancelyyF":{"name":"cancel()","abstract":"

        Cancels the promise.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7resolve4withyAA0B6ResultOyxq_G_tF":{"name":"resolve(with:)","abstract":"

        Resolves the promise with the given result.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV7resolve4withyACyxq_G_tF":{"name":"resolve(with:)","abstract":"

        Resolves the promise with another promise.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverV15onRequestCancel0D0_yAA0B7ContextO_yAEyxq__GctF":{"name":"onRequestCancel(on:_:)","abstract":"

        Registers a block that will be invoked if requestCancel() is invoked on the promise","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5Error_pRs_rlE7resolve4withyAA0B6ResultOyxqd__G_tsAFRd__lF":{"name":"resolve(with:)","abstract":"

        Resolves the promise with the given result.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5Error_pRs_rlE14handleCallback08isCancelD0yxSg_sAF_pSgtcSbsAF_pc_tF":{"name":"handleCallback(isCancelError:)","abstract":"

        Convenience method for handling framework callbacks.

        ","parent_name":"Resolver"},"Structs/Promise/Resolver.html#/s:12Tomorrowland7PromiseV8ResolverVAAs5ErrorR_rlE7resolve4withys6ResultOyxq_G_tF":{"name":"resolve(with:)","abstract":"

        Resolves the promise with the given result.

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

        A Resolver is used to fulfill, reject, or cancel its associated Promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6resultAA0B6ResultOyxq_GSgvp":{"name":"result","abstract":"

        Returns the result of the promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV16makeWithResolverACyxq_G_AC0E0Vyxq__GtyFZ":{"name":"makeWithResolver()","abstract":"

        Returns a Promise and a Promise.Resolver that can be used to fulfill that promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on_ACyxq_GAA0B7ContextO_yAC8ResolverVyxq__Gctcfc":{"name":"init(on:_:)","abstract":"

        Returns a new Promise that will be resolved using the given block.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9fulfilledACyxq_Gx_tcfc":{"name":"init(fulfilled:)","abstract":"

        Returns a Promise that is already fulfilled with the given value.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8rejectedACyxq_Gq__tcfc":{"name":"init(rejected:)","abstract":"

        Returns a Promise that is already rejected with the given error.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4withACyxq_GAA0B6ResultOyxq_G_tcfc":{"name":"init(with:)","abstract":"

        Returns a Promise that is already resolved with the given result.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4then2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyxctF":{"name":"then(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3map2on5token_ACyqd__q_GAA0B7ContextO_AA0B17InvalidationTokenVSgqd__xctlF":{"name":"map(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7flatMap2on5token_ACyqd__q_GAA0B7ContextO_AA0B17InvalidationTokenVSgAGxctlF":{"name":"flatMap(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV5catch2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyq_ctF":{"name":"catch(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is rejected.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7recover2on5token_ACyxAA7NoErrorOGAA0B7ContextO_AA0B17InvalidationTokenVSgxq_ctF":{"name":"recover(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8mapError2on5token_ACyxqd__GAA0B7ContextO_AA0B17InvalidationTokenVSgqd__q_ctlF":{"name":"mapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV12flatMapError2on5token_ACyxqd__GAA0B7ContextO_AA0B17InvalidationTokenVSgAGq_ctlF":{"name":"flatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV11tryMapError2on5token_ACyxs0E0_pGAA0B7ContextO_AA0B17InvalidationTokenVSgqd__q_KctsAGRd__lF":{"name":"tryMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV15tryFlatMapError2on5token_ACyxs0F0_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyxqd__Gq_KctsAGRd__lF":{"name":"tryFlatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/tryMapError(on:token:_:)":{"name":"tryMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMapError(on:token:_:)":{"name":"tryFlatMapError(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6always2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyAA0B6ResultOyxq_GctF":{"name":"always(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9mapResult2on5token_ACyqd__qd_0_GAA0B7ContextO_AA0B17InvalidationTokenVSgAA0bD0Oyqd__qd_0_GANyxq_Gctr0_lF":{"name":"mapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV13flatMapResult2on5token_ACyqd__qd_0_GAA0B7ContextO_AA0B17InvalidationTokenVSgAgA0bE0Oyxq_Gctr0_lF":{"name":"flatMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV12tryMapResult2on5token_ACyqd__s5Error_pGAA0B7ContextO_AA0B17InvalidationTokenVSgAA0bE0Oyqd__qd_0_GAOyxq_GKctsAGRd_0_r0_lF":{"name":"tryMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV16tryFlatMapResult2on5token_ACyqd__s5Error_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyqd__qd_0_GAA0bF0Oyxq_GKctsAGRd_0_r0_lF":{"name":"tryFlatMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/tryMapResult(on:token:_:)":{"name":"tryMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMapResult(on:token:_:)":{"name":"tryFlatMapResult(on:token:_:)","abstract":"

        Registers a callback that will be invoked with the promise result, no matter what it is, and","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3tap2on5token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyAA0B6ResultOyxq_GctF":{"name":"tap(on:token:_:)","abstract":"

        Registers a callback that will be invoked when the promise is resolved without affecting behavior.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV3tapACyxq_GyF":{"name":"tap()","abstract":"

        Returns a new Promise that adopts the result of the receiver without affecting its behavior.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV8onCancel0C05token_ACyxq_GAA0B7ContextO_AA0B17InvalidationTokenVSgyyctF":{"name":"onCancel(on:token:_:)","abstract":"

        Registers a callback that will be invoked when the promise is cancelled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV4forkyACyxq_GyAEKXEKF":{"name":"fork(_:)","abstract":"

        Passes the Promise to a block and then returns the Promise for further chaining.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV13requestCancelyyF":{"name":"requestCancel()","abstract":"

        Requests that the Promise should be cancelled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV25requestCancelOnInvalidateyACyxq_GAA0B17InvalidationTokenVF":{"name":"requestCancelOnInvalidate(_:)","abstract":"

        Requests that the Promise should be cancelled when the token is invalidated.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV14ignoringCancelACyxq_GyF":{"name":"ignoringCancel()","abstract":"

        Returns a new Promise that adopts the value of the receiver but ignores cancel requests.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV6resultACyxq_GAA0B6ResultOyxq_G_tcfc":{"name":"init(result:)","abstract":"

        Undocumented

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on6result5afterACyxq_GAA0B7ContextO_AA0B6ResultOyxq_GSdtcfc":{"name":"init(on:result:after:)","abstract":"

        Undocumented

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV21requestCancelOnDeinityACyxq_GyXlF":{"name":"requestCancelOnDeinit(_:)","abstract":"

        Requests that the Promise should be cancelled when the object deinits.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5ErrorR_rlE6upcastACyxsAD_pGvp":{"name":"upcast","abstract":"

        Returns a new promise with an error type of Swift.Error.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVA2A7NoErrorORs_rlE6upcastACyxs0D0_pGvp":{"name":"upcast","abstract":"

        Returns a new promise with an error type of Swift.Error.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE2on_ACyxsAD_pGAA0B7ContextO_yAC8ResolverVyxsAD_p_GKctcfc":{"name":"init(on:_:)","abstract":"

        Returns a new Promise that will be resolved using the given block.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE7tryThen2on5token_ACyxsAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgyxKctF":{"name":"tryThen(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE6tryMap2on5token_ACyqd__sAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgqd__xKctlF":{"name":"tryMap(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/tryFlatMap(on:token:_:)":{"name":"tryFlatMap(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE10tryFlatMap2on5token_ACyqd__sAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgACyqd__qd_0_GxKctsADRd_0_r0_lF":{"name":"tryFlatMap(on:token:_:)","abstract":"

        Registers a callback that is invoked when the promise is fulfilled.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE10tryRecover2on5token_ACyxsAD_pGAA0B7ContextO_AA0B17InvalidationTokenVSgxsAD_pKctF":{"name":"tryRecover(on:token:_:)","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

        Two Promises compare as equal if they represent the same promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV11cancellableAA0B11CancellableVvp":{"name":"cancellable","abstract":"

        Returns a value that can be used to cancel this promise without holding onto the full promise.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5ErrorR_rlE4withACyxq_Gs6ResultOyxq_G_tcfc":{"name":"init(with:)","abstract":"

        Returns a Promise that is already resolved with the given result.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV9withTokenyAA0dB0Vyxq_GAA0b12InvalidationD0VF":{"name":"withToken(_:)","abstract":"

        Returns a new TokenPromise that wraps the receiver.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on9fulfilled5afterACyxq_GAA0B7ContextO_xSdtcfc":{"name":"init(on:fulfilled:after:)","abstract":"

        Returns a Promise that fulfills with the given value after a delay.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on8rejected5afterACyxq_GAA0B7ContextO_q_Sdtcfc":{"name":"init(on:rejected:after:)","abstract":"

        Returns a Promise that rejects with the given error after a delay.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV2on4with5afterACyxq_GAA0B7ContextO_AA0B6ResultOyxq_GSdtcfc":{"name":"init(on:with:after:)","abstract":"

        Returns a Promise that resolves with the given result after a delay.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV5delay2on_ACyxq_GAA0B7ContextO_SdtF":{"name":"delay(on:_:)","abstract":"

        Returns a new Promise that adopts the receiver’s result after a delay.

        ","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseV7timeout2on5delayACyxAA0B12TimeoutErrorOyq_GGAA0B7ContextO_SdtF":{"name":"timeout(on:delay:)","abstract":"

        Returns a Promise that is rejected with an error if the receiver does not resolve within","parent_name":"Promise"},"Structs/Promise.html#/s:12Tomorrowland7PromiseVAAs5Error_pRs_rlE7timeout2on5delayACyxsAD_pGAA0B7ContextO_SdtF":{"name":"timeout(on:delay:)","abstract":"

        Returns a Promise that is rejected with an error if the receiver does not resolve within","parent_name":"Promise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV8Resolvera":{"name":"Resolver","abstract":"

        The type of the promise resolver. See Promise<Value,Error>.Resolver.

        ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV2on_ACyxq_GAA0C7ContextO_yAA0C0V8ResolverVyxq__Gctcfc":{"name":"init(on:_:)","abstract":"

        Returns a new DelayedPromise that can be resolved with the given block.

        ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV7promiseAA0C0Vyxq_Gvp":{"name":"promise","abstract":"

        Returns a Promise that asynchronously contains the value of the computation.

        ","parent_name":"DelayedPromise"},"Structs/DelayedPromise.html#/s:12Tomorrowland14DelayedPromiseV2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

        Two DelayedPromises compare as equal if they would produce equal Promises.

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

        DelayedPromise is like a Promise but it doesn’t invoke its callback until the .promise"},"Structs/Promise.html":{"name":"Promise","abstract":"

        A Promise is a construct that will eventually hold a value or error, and can invoke callbacks"},"Structs/PromiseCancellable.html":{"name":"PromiseCancellable","abstract":"

        A type that can be used to cancel a promise without holding onto the full promise.

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

        An invalidation token that can be used to cancel callbacks registered to a Promise.

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

        A Promise adapter that automatically applies a PromiseInvalidationToken.

        "},"Functions.html#/s:12Tomorrowland4when9fulfilled3qos15cancelOnFailureAA7PromiseVySayxGq_GSayAGyxq_GG_8Dispatch0I3QoSV0J6SClassOSbtr0_lF":{"name":"when(fulfilled:qos:cancelOnFailure:)","abstract":"

        Waits on an array of Promises and returns a Promise that is fulfilled with an array of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled_____3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_q2_q3_tq4_GAGyxq4_G_AGyq_q4_GAGyq0_q4_GAGyq1_q4_GAGyq2_q4_GAGyq3_q4_G8Dispatch0I3QoSV0J6SClassOSbtr5_lF":{"name":"when(fulfilled:_:_:_:_:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled____3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_q2_tq3_GAGyxq3_G_AGyq_q3_GAGyq0_q3_GAGyq1_q3_GAGyq2_q3_G8Dispatch0I3QoSV0J6SClassOSbtr4_lF":{"name":"when(fulfilled:_:_:_:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled___3qos15cancelOnFailureAA7PromiseVyx_q_q0_q1_tq2_GAGyxq2_G_AGyq_q2_GAGyq0_q2_GAGyq1_q2_G8Dispatch0I3QoSV0J6SClassOSbtr3_lF":{"name":"when(fulfilled:_:_:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled__3qos15cancelOnFailureAA7PromiseVyx_q_q0_tq1_GAGyxq1_G_AGyq_q1_GAGyq0_q1_G8Dispatch0I3QoSV0J6SClassOSbtr2_lF":{"name":"when(fulfilled:_:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when9fulfilled_3qos15cancelOnFailureAA7PromiseVyx_q_tq0_GAGyxq0_G_AGyq_q0_G8Dispatch0I3QoSV0J6SClassOSbtr1_lF":{"name":"when(fulfilled:_:qos:cancelOnFailure:)","abstract":"

        Waits on a tuple of Promises and returns a Promise that is fulfilled with a tuple of the"},"Functions.html#/s:12Tomorrowland4when5first15cancelRemainingAA7PromiseVyxq_GSayAGG_Sbtr0_lF":{"name":"when(first:cancelRemaining:)","abstract":"

        Returns a Promise that is resolved with the result of the first resolved input Promise.

        "},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorO8timedOutyACyxGAEmlF":{"name":"timedOut","abstract":"

        The promise did not resolve within the given interval.

        ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorO8rejectedyACyxGxcAEmlF":{"name":"rejected(_:)","abstract":"

        The promise was rejected with an error.

        ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:10Foundation13CustomNSErrorP13errorUserInfoSDySSypGvp":{"name":"errorUserInfo","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorOAASQRzlE2eeoiySbACyxG_AEtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:12Tomorrowland19PromiseTimeoutErrorOAASQRzlE2neoiySbACyxG_AEtFZ":{"name":"!=(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are not equal.

        ","parent_name":"PromiseTimeoutError"},"Enums/PromiseTimeoutError.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseTimeoutError"},"Enums/NoError.html#/s:12Tomorrowland7NoErrorO2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"NoError"},"Enums/NoError.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"NoError"},"Enums/NoError.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"NoError"},"Enums/NoError.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"NoError"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5valueyACyxq_GxcAEmr0_lF":{"name":"value(_:)","abstract":"

        The value the promise was fulfilled with.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5erroryACyxq_Gq_cAEmr0_lF":{"name":"error(_:)","abstract":"

        The error the promise was rejected with.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO9cancelledyACyxq_GAEmr0_lF":{"name":"cancelled","abstract":"

        The promise was cancelled.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5valuexSgvp":{"name":"value","abstract":"

        Returns the contained value if the result is .value, otherwise nil.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO5errorq_Sgvp":{"name":"error","abstract":"

        Returns the contained error if the result is .error, otherwise nil.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO11isCancelledSbvp":{"name":"isCancelled","abstract":"

        Returns true if the result is .cancelled, otherwise false.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO3mapyACyqd__q_Gqd__xKXEKlF":{"name":"map(_:)","abstract":"

        Maps a successful result through a block and returns the new result.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO8mapErroryACyxqd__Gqd__q_KXEKlF":{"name":"mapError(_:)","abstract":"

        Maps a rejected result through a block and returns the new result.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO7flatMapyACyqd__q_GAExKXEKlF":{"name":"flatMap(_:)","abstract":"

        Maps a successful result through a block and returns the new result.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultO12flatMapErroryACyxqd__GAEq_KXEKlF":{"name":"flatMapError(_:)","abstract":"

        Maps a rejected result through a block and returns the new result.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAASQRzSQR_rlE2eeoiySbACyxq_G_AEtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAASQRzSQR_rlE2neoiySbACyxq_G_AEtFZ":{"name":"!=(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are not equal.

        ","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:SH4hash4intoys6HasherVz_tF":{"name":"hash(into:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:SE6encode2toys7Encoder_p_tKF":{"name":"encode(to:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:Se4fromxs7Decoder_p_tKcfc":{"name":"init(from:)","parent_name":"PromiseResult"},"Enums/PromiseResult.html#/s:12Tomorrowland13PromiseResultOAAs5ErrorR_rlEyACyxq_Gs0C0Oyxq_Gcfc":{"name":"init(_:)","abstract":"

        Returns a PromiseResult from a Result.

        ","parent_name":"PromiseResult"},"Enums/PromiseCallbackError.html#/c:@M@Tomorrowland@E@TWLPromiseCallbackError@TWLPromiseCallbackErrorAPIMismatch":{"name":"apiMismatch","abstract":"

        The callback did not conform to the expected API.

        ","parent_name":"PromiseCallbackError"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO4mainyA2CmF":{"name":"main","abstract":"

        Execute on the main queue.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO10backgroundyA2CmF":{"name":"background","abstract":"

        Execute on a dispatch queue with the .background QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO7utilityyA2CmF":{"name":"utility","abstract":"

        Execute on a dispatch queue with the .utility QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO7defaultyA2CmF":{"name":"default","abstract":"

        Execute on a dispatch queue with the .default QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO13userInitiatedyA2CmF":{"name":"userInitiated","abstract":"

        Execute on a dispatch queue with the .userInitiated QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO15userInteractiveyA2CmF":{"name":"userInteractive","abstract":"

        Execute on a dispatch queue with the .userInteractive QoS.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO5queueyACSo012OS_dispatch_D0CcACmF":{"name":"queue(_:)","abstract":"

        Execute on the specified dispatch queue.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO14operationQueueyACSo011NSOperationE0CcACmF":{"name":"operationQueue(_:)","abstract":"

        Execute on the specified operation queue.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO9immediateyA2CmF":{"name":"immediate","abstract":"

        Execute synchronously.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO4autoACvpZ":{"name":"auto","abstract":"

        Returns .main when accessed from the main thread, otherwise .default.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO3qosAC8Dispatch0E3QoSV0F6SClassO_tcfc":{"name":"init(qos:)","abstract":"

        Returns the PromiseContext that corresponds to a given Dispatch QoS class.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html#/s:12Tomorrowland14PromiseContextO2eeoiySbAC_ACtFZ":{"name":"==(_:_:)","abstract":"

        Returns a Boolean value indicating whether two values are equal.

        ","parent_name":"PromiseContext"},"Enums/PromiseContext.html":{"name":"PromiseContext","abstract":"

        The context in which a Promise body or callback is evaluated.

        "},"Enums/PromiseCallbackError.html":{"name":"PromiseCallbackError","abstract":"

        An error potentially returned from Promise.Resolver.handleCallback(isCancelError:).

        "},"Enums/PromiseResult.html":{"name":"PromiseResult","abstract":"

        The result of a resolved promise.

        "},"Enums/NoError.html":{"name":"NoError","abstract":"

        NoError is a type that cannot be constructed.

        "},"Enums/PromiseTimeoutError.html":{"name":"PromiseTimeoutError","abstract":"

        The error type returned from Promise.timeout.

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

        The following enumerations are available globally.

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

        The following functions are available globally.

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

        The following structures are available globally.

        "},"Typealiases.html":{"name":"Type Aliases","abstract":"

        The following type aliases are available globally.

        "}} \ No newline at end of file