From 86396c9060f591076df5aa91beccfd101c4803d2 Mon Sep 17 00:00:00 2001 From: Denys Telezhkin Date: Mon, 4 Jan 2021 17:39:09 +0200 Subject: [PATCH] Releasing version 5.4.0. --- CHANGELOG.md | 2 + Supporting files/Framework.plist | 4 +- TRON.podspec | 2 +- docs/Classes.html | 60 +++++++++--------- docs/Classes/APIError.html | 4 +- docs/Classes/APIRequest.html | 31 +-------- docs/Classes/APIStub.html | 4 +- docs/Classes/BaseRequest.html | 8 +-- docs/Classes/CodableParser.html | 4 +- docs/Classes/CodableSerializer.html | 4 +- docs/Classes/DownloadAPIRequest.html | 31 +-------- docs/Classes/NetworkActivityPlugin.html | 4 +- docs/Classes/NetworkLoggerPlugin.html | 4 +- docs/Classes/TRON.html | 4 +- docs/Classes/URLBuilder.html | 4 +- docs/Classes/URLBuilder/Behavior.html | 4 +- docs/Classes/UploadAPIRequest.html | 31 +-------- docs/Enums.html | 4 +- docs/Enums/DownloadRequestType.html | 4 +- docs/Enums/UploadRequestType.html | 4 +- docs/Extensions.html | 4 +- docs/Extensions/DataRequest.html | 4 +- docs/Extensions/DownloadRequest.html | 4 +- docs/Extensions/Request.html | 4 +- docs/Protocols.html | 4 +- docs/Protocols/DownloadErrorSerializable.html | 4 +- docs/Protocols/ErrorSerializable.html | 4 +- docs/Protocols/Plugin.html | 4 +- docs/Protocols/RequestCancellable.html | 4 +- docs/Protocols/TronDelegate.html | 4 +- docs/Structs.html | 4 +- docs/Structs/DownloadError.html | 4 +- .../FileURLPassthroughResponseSerializer.html | 4 +- docs/Structs/TRONDataResponseSerializer.html | 4 +- .../TRONDownloadResponseSerializer.html | 4 +- docs/badge.svg | 4 +- .../Contents/Resources/Documents/Classes.html | 60 +++++++++--------- .../Resources/Documents/Classes/APIError.html | 4 +- .../Documents/Classes/APIRequest.html | 31 +-------- .../Resources/Documents/Classes/APIStub.html | 4 +- .../Documents/Classes/BaseRequest.html | 8 +-- .../Documents/Classes/CodableParser.html | 4 +- .../Documents/Classes/CodableSerializer.html | 4 +- .../Documents/Classes/DownloadAPIRequest.html | 31 +-------- .../Classes/NetworkActivityPlugin.html | 4 +- .../Classes/NetworkLoggerPlugin.html | 4 +- .../Resources/Documents/Classes/TRON.html | 4 +- .../Documents/Classes/URLBuilder.html | 4 +- .../Classes/URLBuilder/Behavior.html | 4 +- .../Documents/Classes/UploadAPIRequest.html | 31 +-------- .../Contents/Resources/Documents/Enums.html | 4 +- .../Documents/Enums/DownloadRequestType.html | 4 +- .../Documents/Enums/UploadRequestType.html | 4 +- .../Resources/Documents/Extensions.html | 4 +- .../Documents/Extensions/DataRequest.html | 4 +- .../Documents/Extensions/DownloadRequest.html | 4 +- .../Documents/Extensions/Request.html | 4 +- .../Resources/Documents/Protocols.html | 4 +- .../Protocols/DownloadErrorSerializable.html | 4 +- .../Protocols/ErrorSerializable.html | 4 +- .../Resources/Documents/Protocols/Plugin.html | 4 +- .../Protocols/RequestCancellable.html | 4 +- .../Documents/Protocols/TronDelegate.html | 4 +- .../Contents/Resources/Documents/Structs.html | 4 +- .../Documents/Structs/DownloadError.html | 4 +- .../FileURLPassthroughResponseSerializer.html | 4 +- .../Structs/TRONDataResponseSerializer.html | 4 +- .../TRONDownloadResponseSerializer.html | 4 +- .../Contents/Resources/Documents/badge.svg | 4 +- .../Contents/Resources/Documents/index.html | 22 +++---- .../Contents/Resources/Documents/search.json | 2 +- .../Resources/Documents/undocumented.json | 37 ++++++++--- .../Contents/Resources/docSet.dsidx | Bin 61440 -> 65536 bytes docs/docsets/TRON.tgz | Bin 132094 -> 131771 bytes docs/docsets/TRON.xml | 2 +- docs/index.html | 22 +++---- docs/search.json | 2 +- docs/undocumented.json | 21 ------ 78 files changed, 251 insertions(+), 411 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73b20f5a..f400b2f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ All notable changes to this project will be documented in this file. # Next +## [5.4.0](https://github.com/MLSDev/TRON/releases/tag/5.4.0) + ### Changed * RxSwift dependency bumped to 6.0 and higher diff --git a/Supporting files/Framework.plist b/Supporting files/Framework.plist index bc8da3a5..1766ab8b 100644 --- a/Supporting files/Framework.plist +++ b/Supporting files/Framework.plist @@ -15,12 +15,12 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 5.3.0 + 5.4.0 CFBundleSignature ???? CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass - + diff --git a/TRON.podspec b/TRON.podspec index 8fc64eae..0326bdb5 100644 --- a/TRON.podspec +++ b/TRON.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'TRON' - s.version = "5.3.0" + s.version = "5.4.0" s.license = 'MIT' s.summary = 'Lightweight network abstraction layer, written on top of Alamofire' s.homepage = 'https://github.com/MLSDev/TRON' diff --git a/docs/Classes.html b/docs/Classes.html index 00df3ab1..7b4dabcb 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

@@ -293,34 +293,6 @@

Declaration

-
  • -
    - - - - UploadAPIRequest - -
    -
    -
    -
    -
    -
    -

    UploadAPIRequest encapsulates upload request creation logic, stubbing options, and response/error parsing.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class UploadAPIRequest<Model, ErrorModel> : BaseRequest<Model, ErrorModel> where ErrorModel : ErrorSerializable
    - -
    -
    -
    -
    -
  • @@ -519,6 +491,34 @@

    Declaration

  • +
  • +
    + + + + UploadAPIRequest + +
    +
    +
    +
    +
    +
    +

    UploadAPIRequest encapsulates upload request creation logic, stubbing options, and response/error parsing.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class UploadAPIRequest<Model, ErrorModel> : BaseRequest<Model, ErrorModel> where ErrorModel : ErrorSerializable
    + +
    +
    +
    +
    +
  • @@ -527,7 +527,7 @@

    Declaration

    diff --git a/docs/Classes/APIError.html b/docs/Classes/APIError.html index eedd9207..ee7029ba 100644 --- a/docs/Classes/APIError.html +++ b/docs/Classes/APIError.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -438,7 +438,7 @@

    Declaration

    diff --git a/docs/Classes/APIRequest.html b/docs/Classes/APIRequest.html index 2f9671ba..6be2719f 100644 --- a/docs/Classes/APIRequest.html +++ b/docs/Classes/APIRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -402,33 +402,6 @@

    Declaration

    -
  • -
    - - - - publisher() - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func publisher() -> AnyPublisher<Model, ErrorModel>
    - -
    -
    -
    -
    -
  • @@ -437,7 +410,7 @@

    Declaration

    diff --git a/docs/Classes/APIStub.html b/docs/Classes/APIStub.html index 059a52c3..23220551 100644 --- a/docs/Classes/APIStub.html +++ b/docs/Classes/APIStub.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -554,7 +554,7 @@

    Parameters

    diff --git a/docs/Classes/BaseRequest.html b/docs/Classes/BaseRequest.html index edfd2dd2..37d5be7b 100644 --- a/docs/Classes/BaseRequest.html +++ b/docs/Classes/BaseRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -450,7 +450,7 @@

    Declaration

    Declaration

    Swift

    -
    open var interceptor: RequestInterceptor
    +
    open var interceptor: RequestInterceptor?
    @@ -477,7 +477,7 @@

    Declaration

    Declaration

    Swift

    -
    open var requestModifier: Session.RequestModifier
    +
    open var requestModifier: Session.RequestModifier?
    @@ -1463,7 +1463,7 @@

    Return Value

    diff --git a/docs/Classes/CodableParser.html b/docs/Classes/CodableParser.html index 5f97c679..fec57dba 100644 --- a/docs/Classes/CodableParser.html +++ b/docs/Classes/CodableParser.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -276,7 +276,7 @@

    Declaration

    diff --git a/docs/Classes/CodableSerializer.html b/docs/Classes/CodableSerializer.html index 1230a92b..75bbf85b 100644 --- a/docs/Classes/CodableSerializer.html +++ b/docs/Classes/CodableSerializer.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -550,7 +550,7 @@

    Return Value

    diff --git a/docs/Classes/DownloadAPIRequest.html b/docs/Classes/DownloadAPIRequest.html index 16f263c6..a7288f31 100644 --- a/docs/Classes/DownloadAPIRequest.html +++ b/docs/Classes/DownloadAPIRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -456,33 +456,6 @@

    Declaration

    -
  • -
    - - - - publisher() - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func publisher() -> AnyPublisher<Model, ErrorModel>
    - -
    -
    -
    -
    -
  • @@ -491,7 +464,7 @@

    Declaration

    diff --git a/docs/Classes/NetworkActivityPlugin.html b/docs/Classes/NetworkActivityPlugin.html index 94971991..af4223c7 100644 --- a/docs/Classes/NetworkActivityPlugin.html +++ b/docs/Classes/NetworkActivityPlugin.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -276,7 +276,7 @@

    Declaration

    diff --git a/docs/Classes/NetworkLoggerPlugin.html b/docs/Classes/NetworkLoggerPlugin.html index b4689ac0..7bd7c217 100644 --- a/docs/Classes/NetworkLoggerPlugin.html +++ b/docs/Classes/NetworkLoggerPlugin.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -361,7 +361,7 @@

    Declaration

    diff --git a/docs/Classes/TRON.html b/docs/Classes/TRON.html index 151d8359..bf8757d0 100644 --- a/docs/Classes/TRON.html +++ b/docs/Classes/TRON.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -1048,7 +1048,7 @@

    Declaration

    diff --git a/docs/Classes/URLBuilder.html b/docs/Classes/URLBuilder.html index de1e325b..d8315ea4 100644 --- a/docs/Classes/URLBuilder.html +++ b/docs/Classes/URLBuilder.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -375,7 +375,7 @@

    Parameters

    diff --git a/docs/Classes/URLBuilder/Behavior.html b/docs/Classes/URLBuilder/Behavior.html index 476cdd28..baae7356 100644 --- a/docs/Classes/URLBuilder/Behavior.html +++ b/docs/Classes/URLBuilder/Behavior.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -282,7 +282,7 @@

    Declaration

    diff --git a/docs/Classes/UploadAPIRequest.html b/docs/Classes/UploadAPIRequest.html index 18aaffcf..7924beff 100644 --- a/docs/Classes/UploadAPIRequest.html +++ b/docs/Classes/UploadAPIRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -402,33 +402,6 @@

    Declaration

    -
  • -
    - - - - publisher() - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func publisher() -> AnyPublisher<Model, ErrorModel>
    - -
    -
    -
    -
    -
  • @@ -437,7 +410,7 @@

    Declaration

    diff --git a/docs/Enums.html b/docs/Enums.html index 4ac4a50a..5712a13a 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -245,7 +245,7 @@

    Declaration

    diff --git a/docs/Enums/DownloadRequestType.html b/docs/Enums/DownloadRequestType.html index af46e261..fc6039b2 100644 --- a/docs/Enums/DownloadRequestType.html +++ b/docs/Enums/DownloadRequestType.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -249,7 +249,7 @@

    Declaration

    diff --git a/docs/Enums/UploadRequestType.html b/docs/Enums/UploadRequestType.html index d7754537..0b851937 100644 --- a/docs/Enums/UploadRequestType.html +++ b/docs/Enums/UploadRequestType.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -303,7 +303,7 @@

    Declaration

    diff --git a/docs/Extensions.html b/docs/Extensions.html index 3b2e25e8..97aa3076 100644 --- a/docs/Extensions.html +++ b/docs/Extensions.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -253,7 +253,7 @@

    Declaration

    diff --git a/docs/Extensions/DataRequest.html b/docs/Extensions/DataRequest.html index 958a5a82..de7a5d55 100644 --- a/docs/Extensions/DataRequest.html +++ b/docs/Extensions/DataRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -215,7 +215,7 @@

    Declaration

    diff --git a/docs/Extensions/DownloadRequest.html b/docs/Extensions/DownloadRequest.html index 899caa68..76f7f0b5 100644 --- a/docs/Extensions/DownloadRequest.html +++ b/docs/Extensions/DownloadRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -250,7 +250,7 @@

    Declaration

    diff --git a/docs/Extensions/Request.html b/docs/Extensions/Request.html index 72d5b4e2..80fd1b3c 100644 --- a/docs/Extensions/Request.html +++ b/docs/Extensions/Request.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -215,7 +215,7 @@

    Declaration

    diff --git a/docs/Protocols.html b/docs/Protocols.html index e4328aa5..bce30936 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -329,7 +329,7 @@

    Declaration

    diff --git a/docs/Protocols/DownloadErrorSerializable.html b/docs/Protocols/DownloadErrorSerializable.html index 21e84672..36fdbf98 100644 --- a/docs/Protocols/DownloadErrorSerializable.html +++ b/docs/Protocols/DownloadErrorSerializable.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -222,7 +222,7 @@

    Declaration

    diff --git a/docs/Protocols/ErrorSerializable.html b/docs/Protocols/ErrorSerializable.html index 7c8d6684..6a9d844b 100644 --- a/docs/Protocols/ErrorSerializable.html +++ b/docs/Protocols/ErrorSerializable.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -222,7 +222,7 @@

    Declaration

    diff --git a/docs/Protocols/Plugin.html b/docs/Protocols/Plugin.html index 29d490a3..91e95d73 100644 --- a/docs/Protocols/Plugin.html +++ b/docs/Protocols/Plugin.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -965,7 +965,7 @@

    Parameters

    diff --git a/docs/Protocols/RequestCancellable.html b/docs/Protocols/RequestCancellable.html index e54e5b9e..e674176a 100644 --- a/docs/Protocols/RequestCancellable.html +++ b/docs/Protocols/RequestCancellable.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -222,7 +222,7 @@

    Declaration

    diff --git a/docs/Protocols/TronDelegate.html b/docs/Protocols/TronDelegate.html index 6cb0a44c..a4759464 100644 --- a/docs/Protocols/TronDelegate.html +++ b/docs/Protocols/TronDelegate.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -249,7 +249,7 @@

    Declaration

    diff --git a/docs/Structs.html b/docs/Structs.html index d89540dc..189bf2f4 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -302,7 +302,7 @@

    Declaration

    diff --git a/docs/Structs/DownloadError.html b/docs/Structs/DownloadError.html index 42a1188b..d84ab4a8 100644 --- a/docs/Structs/DownloadError.html +++ b/docs/Structs/DownloadError.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -269,7 +269,7 @@

    Parameters

    diff --git a/docs/Structs/FileURLPassthroughResponseSerializer.html b/docs/Structs/FileURLPassthroughResponseSerializer.html index 83ca8e75..72d69362 100644 --- a/docs/Structs/FileURLPassthroughResponseSerializer.html +++ b/docs/Structs/FileURLPassthroughResponseSerializer.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

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

    Return Value

    diff --git a/docs/Structs/TRONDataResponseSerializer.html b/docs/Structs/TRONDataResponseSerializer.html index 16b0b2a7..7e763fb6 100644 --- a/docs/Structs/TRONDataResponseSerializer.html +++ b/docs/Structs/TRONDataResponseSerializer.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -359,7 +359,7 @@

    Return Value

    diff --git a/docs/Structs/TRONDownloadResponseSerializer.html b/docs/Structs/TRONDownloadResponseSerializer.html index 44052c48..b0ffb89e 100644 --- a/docs/Structs/TRONDownloadResponseSerializer.html +++ b/docs/Structs/TRONDownloadResponseSerializer.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -359,7 +359,7 @@

    Return Value

    diff --git a/docs/badge.svg b/docs/badge.svg index da0aa979..b28dab66 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -19,10 +19,10 @@ documentation - 88% + 89% - 88% + 89% diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes.html index 00df3ab1..7b4dabcb 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -293,34 +293,6 @@

    Declaration

    -
  • -
    - - - - UploadAPIRequest - -
    -
    -
    -
    -
    -
    -

    UploadAPIRequest encapsulates upload request creation logic, stubbing options, and response/error parsing.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class UploadAPIRequest<Model, ErrorModel> : BaseRequest<Model, ErrorModel> where ErrorModel : ErrorSerializable
    - -
    -
    -
    -
    -
  • @@ -519,6 +491,34 @@

    Declaration

  • +
  • +
    + + + + UploadAPIRequest + +
    +
    +
    +
    +
    +
    +

    UploadAPIRequest encapsulates upload request creation logic, stubbing options, and response/error parsing.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    open class UploadAPIRequest<Model, ErrorModel> : BaseRequest<Model, ErrorModel> where ErrorModel : ErrorSerializable
    + +
    +
    +
    +
    +
  • @@ -527,7 +527,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIError.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIError.html index eedd9207..ee7029ba 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIError.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIError.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -438,7 +438,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIRequest.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIRequest.html index 2f9671ba..6be2719f 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIRequest.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -402,33 +402,6 @@

    Declaration

    -
  • -
    - - - - publisher() - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func publisher() -> AnyPublisher<Model, ErrorModel>
    - -
    -
    -
    -
    -
  • @@ -437,7 +410,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIStub.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIStub.html index 059a52c3..23220551 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIStub.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/APIStub.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -554,7 +554,7 @@

    Parameters

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/BaseRequest.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/BaseRequest.html index edfd2dd2..37d5be7b 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/BaseRequest.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/BaseRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -450,7 +450,7 @@

    Declaration

    Declaration

    Swift

    -
    open var interceptor: RequestInterceptor
    +
    open var interceptor: RequestInterceptor?
    @@ -477,7 +477,7 @@

    Declaration

    Declaration

    Swift

    -
    open var requestModifier: Session.RequestModifier
    +
    open var requestModifier: Session.RequestModifier?
    @@ -1463,7 +1463,7 @@

    Return Value

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/CodableParser.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/CodableParser.html index 5f97c679..fec57dba 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/CodableParser.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/CodableParser.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -276,7 +276,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/CodableSerializer.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/CodableSerializer.html index 1230a92b..75bbf85b 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/CodableSerializer.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/CodableSerializer.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -550,7 +550,7 @@

    Return Value

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/DownloadAPIRequest.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/DownloadAPIRequest.html index 16f263c6..a7288f31 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/DownloadAPIRequest.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/DownloadAPIRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -456,33 +456,6 @@

    Declaration

    -
  • -
    - - - - publisher() - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func publisher() -> AnyPublisher<Model, ErrorModel>
    - -
    -
    -
    -
    -
  • @@ -491,7 +464,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/NetworkActivityPlugin.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/NetworkActivityPlugin.html index 94971991..af4223c7 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/NetworkActivityPlugin.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/NetworkActivityPlugin.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -276,7 +276,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/NetworkLoggerPlugin.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/NetworkLoggerPlugin.html index b4689ac0..7bd7c217 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/NetworkLoggerPlugin.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/NetworkLoggerPlugin.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -361,7 +361,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/TRON.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/TRON.html index 151d8359..bf8757d0 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/TRON.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/TRON.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -1048,7 +1048,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/URLBuilder.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/URLBuilder.html index de1e325b..d8315ea4 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/URLBuilder.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/URLBuilder.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -375,7 +375,7 @@

    Parameters

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/URLBuilder/Behavior.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/URLBuilder/Behavior.html index 476cdd28..baae7356 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/URLBuilder/Behavior.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/URLBuilder/Behavior.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -282,7 +282,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/UploadAPIRequest.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/UploadAPIRequest.html index 18aaffcf..7924beff 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/UploadAPIRequest.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Classes/UploadAPIRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -402,33 +402,6 @@

    Declaration

    -
  • -
    - - - - publisher() - -
    -
    -
    -
    -
    -
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func publisher() -> AnyPublisher<Model, ErrorModel>
    - -
    -
    -
    -
    -
  • @@ -437,7 +410,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums.html index 4ac4a50a..5712a13a 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -245,7 +245,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums/DownloadRequestType.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums/DownloadRequestType.html index af46e261..fc6039b2 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums/DownloadRequestType.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums/DownloadRequestType.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -249,7 +249,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums/UploadRequestType.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums/UploadRequestType.html index d7754537..0b851937 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums/UploadRequestType.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Enums/UploadRequestType.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -303,7 +303,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions.html index 3b2e25e8..97aa3076 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -253,7 +253,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/DataRequest.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/DataRequest.html index 958a5a82..de7a5d55 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/DataRequest.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/DataRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -215,7 +215,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/DownloadRequest.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/DownloadRequest.html index 899caa68..76f7f0b5 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/DownloadRequest.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/DownloadRequest.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -250,7 +250,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/Request.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/Request.html index 72d5b4e2..80fd1b3c 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/Request.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Extensions/Request.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -215,7 +215,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols.html index e4328aa5..bce30936 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -329,7 +329,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/DownloadErrorSerializable.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/DownloadErrorSerializable.html index 21e84672..36fdbf98 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/DownloadErrorSerializable.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/DownloadErrorSerializable.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -222,7 +222,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/ErrorSerializable.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/ErrorSerializable.html index 7c8d6684..6a9d844b 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/ErrorSerializable.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/ErrorSerializable.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -222,7 +222,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/Plugin.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/Plugin.html index 29d490a3..91e95d73 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/Plugin.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/Plugin.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -965,7 +965,7 @@

    Parameters

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/RequestCancellable.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/RequestCancellable.html index e54e5b9e..e674176a 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/RequestCancellable.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/RequestCancellable.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -222,7 +222,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/TronDelegate.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/TronDelegate.html index 6cb0a44c..a4759464 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/TronDelegate.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Protocols/TronDelegate.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -249,7 +249,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs.html index d89540dc..189bf2f4 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -302,7 +302,7 @@

    Declaration

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/DownloadError.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/DownloadError.html index 42a1188b..d84ab4a8 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/DownloadError.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/DownloadError.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -269,7 +269,7 @@

    Parameters

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/FileURLPassthroughResponseSerializer.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/FileURLPassthroughResponseSerializer.html index 83ca8e75..72d69362 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/FileURLPassthroughResponseSerializer.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/FileURLPassthroughResponseSerializer.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

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

    Return Value

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/TRONDataResponseSerializer.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/TRONDataResponseSerializer.html index 16b0b2a7..7e763fb6 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/TRONDataResponseSerializer.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/TRONDataResponseSerializer.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -359,7 +359,7 @@

    Return Value

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/TRONDownloadResponseSerializer.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/TRONDownloadResponseSerializer.html index 44052c48..b0ffb89e 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/TRONDownloadResponseSerializer.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/Structs/TRONDownloadResponseSerializer.html @@ -23,7 +23,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -359,7 +359,7 @@

    Return Value

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/badge.svg b/docs/docsets/TRON.docset/Contents/Resources/Documents/badge.svg index b28dab66..da0aa979 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/badge.svg +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/badge.svg @@ -19,10 +19,10 @@ documentation - 89% + 88% - 89% + 88% diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/index.html b/docs/docsets/TRON.docset/Contents/Resources/Documents/index.html index 7261e8ce..50669c9b 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/index.html @@ -22,7 +22,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -172,11 +172,11 @@

    - +

    CI -codecov.io +codecov.io CocoaPod platform CocoaPod version Swift Package Manager compatible @@ -225,21 +225,21 @@

    Swift Package M

    TRON framework includes Codable implementation. To use SwiftyJSON, import TRONSwiftyJSON framework. To use RxSwift wrapper, import RxTRON.

    CocoaPods

    -
    pod 'TRON', '~> 5.0.0'
    +
    pod 'TRON', '~> 5.3.0'
     

    Only Core subspec, without SwiftyJSON dependency:

    -
    pod 'TRON/Core', '~> 5.0.0'
    +
    pod 'TRON/Core', '~> 5.3.0'
     

    RxSwift extension for TRON:

    -
    pod 'TRON/RxSwift', '~> 5.0.0'
    +
    pod 'TRON/RxSwift', '~> 5.3.0'
     

    Migration Guides

    Project status

    @@ -348,7 +348,7 @@

    JSONDecodable

    You can also use Alamofire.Empty struct in cases where you don’t care about actual response.

    -

    Some concepts for response serialization, including array response serializer, are described in Container Types Parsing document

    +

    Some concepts for response serialization, including array response serializer, are described in Container Types Parsing document

    It’s possible to customize JSONSerialization.ReadingOptions, that are used by SwiftyJSON.JSON object while parsing data of the response:

    let request : APIRequest<String, APIError> = tron.swiftyJSON(readingOptions: .allowFragments).request("status")
    @@ -499,7 +499,7 @@ 

    Alternatives

    We are dedicated to building best possible tool for interacting with RESTful web-services. However, we understand, that every tool has it’s purpose, and therefore it’s always useful to know, what other tools can be used to achieve the same goal.

    -

    TRON was heavily inspired by Moya framework and LevelUPSDK

    +

    TRON was heavily inspired by Moya framework and LevelUPSDK, which is no longer available in open-source.

    License

    TRON is released under the MIT license. See LICENSE for details.

    @@ -518,7 +518,7 @@

    About MLSDev

    diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/search.json b/docs/docsets/TRON.docset/Contents/Resources/Documents/search.json index f6125def..ffd9fd05 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Structs/FileURLPassthroughResponseSerializer.html#/s:4TRON36FileURLPassthroughResponseSerializerV15MissingURLErrorV":{"name":"MissingURLError","abstract":"

    Error returned when received fileURL is nil

    ","parent_name":"FileURLPassthroughResponseSerializer"},"Structs/FileURLPassthroughResponseSerializer.html#/s:4TRON36FileURLPassthroughResponseSerializerV17serializeDownload7request8response7fileURL5error10Foundation0K0VAI10URLRequestVSg_So17NSHTTPURLResponseCSgAKSgs5Error_pSgtKF":{"name":"serializeDownload(request:response:fileURL:error:)","abstract":"

    Extracts file URL from received response

    ","parent_name":"FileURLPassthroughResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV7closureyx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtKcvp":{"name":"closure","abstract":"

    Serialization closure to execute

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV7closureACyxGx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAF3URLVSgs5Error_pSgtKc_tcfc":{"name":"init(closure:)","abstract":"

    Creates response serializer from passed serialization closure

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV17serializeDownload7request8response7fileURL5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI0J0VSgs5Error_pSgtKF":{"name":"serializeDownload(request:response:fileURL:error:)","abstract":"

    Serializes received response into model object

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV7closureyx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"closure","abstract":"

    Serialization closure to execute

    ","parent_name":"TRONDataResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV7closureACyxGx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAF4DataVSgs5Error_pSgtKc_tcfc":{"name":"init(closure:)","abstract":"

    Creates response serializer from passed serialization closure

    ","parent_name":"TRONDataResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV9serialize7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI4DataVSgs5Error_pSgtKF":{"name":"serialize(request:response:data:error:)","abstract":"

    Serializes received response into model object

    ","parent_name":"TRONDataResponseSerializer"},"Structs/DownloadError.html#/s:4TRON13DownloadErrorV8responseXevp":{"name":"response","abstract":"

    Reported DownloadResponse

    ","parent_name":"DownloadError"},"Structs/DownloadError.html#/s:4TRON13DownloadErrorVyXeXecfc":{"name":"init(_:)","abstract":"

    Creates DownloadError for DownloadAPIRequest.

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

    Error that is created in case DownloadAPIRequest errors out, but Alamofire and URL loading system report error as nil."},"Structs/TRONDataResponseSerializer.html":{"name":"TRONDataResponseSerializer","abstract":"

    Response serializer, that wraps serialization closure to implement Alamofire.DataResponseSerializerProtocol. Is used for APIRequest and UploadAPIRequest.

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

    Response serializer, that wraps serialization closure to implement Alamofire.DownloadResponseSerializerProtocol. Is used for DownloadAPIRequest.

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

    Response serializer, that returns file URL upon successful download. Is used for DownloadAPIRequest.

    "},"Protocols/Plugin.html#/s:4TRON6PluginP15willSendRequestyyAA04BaseE0Cyqd__qd_0_Gr0_lF":{"name":"willSendRequest(_:)","abstract":"

    Notifies that request is about to be converted to Alamofire.Request

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP24willSendAlamofireRequestyXeXeF":{"name":"willSendAlamofireRequest(_:formedFrom:)","abstract":"

    Notifies that request formed from tronRequest, is about to be sent.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP23didSendAlamofireRequestyXeXeF":{"name":"didSendAlamofireRequest(_:formedFrom:)","abstract":"

    Notifies that request, formed from tronRequest, was sent.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP19willProcessResponseyXeXeF":{"name":"willProcessResponse(response:forRequest:formedFrom:)","abstract":"

    Notifies that response was received for request, formed from tronRequest.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP28didSuccessfullyParseResponseyXeXeF":{"name":"didSuccessfullyParseResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Notifies that response for request, formed from tronRequest, was successfully parsed into result.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP15didReceiveErroryXeXeF":{"name":"didReceiveError(_:forResponse:request:formedFrom:)","abstract":"

    Notifies that request processed response and created APIError<ErrorModel> instance.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP23didReceiveDownloadErroryXeXeF":{"name":"didReceiveDownloadError(_:forResponse:request:formedFrom:)","abstract":"

    Notifies that request processed response and created APIError<ErrorModel> instance.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP22didReceiveDataResponseyXeXeF":{"name":"didReceiveDataResponse(_:forRequest:formedFrom:)","abstract":"

    Notifies about data response that was received for request, formed from tronRequest. This method is called after parsing has completed.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP26didReceiveDownloadResponseyXeXeF":{"name":"didReceiveDownloadResponse(_:forRequest:formedFrom:)","abstract":"

    Notifies about download response that was received for request, formed from tronRequest. This method is called after parsing has completed.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP36didSuccessfullyParseDownloadResponseyXeXeF":{"name":"didSuccessfullyParseDownloadResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Notifies that response for request, formed from tronRequest, was successfully parsed into result.

    ","parent_name":"Plugin"},"Protocols/RequestCancellable.html#/s:4TRON18RequestCancellableP06cancelB0yyF":{"name":"cancelRequest()","abstract":"

    Cancel current request

    ","parent_name":"RequestCancellable"},"Protocols/TronDelegate.html#/s:4TRON12TronDelegateP7sessionXevp":{"name":"session","abstract":"

    Alamofire.Session used to send requests

    ","parent_name":"TronDelegate"},"Protocols/TronDelegate.html#/s:4TRON12TronDelegateP7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Global array of plugins on TRON instance

    ","parent_name":"TronDelegate"},"Protocols/DownloadErrorSerializable.html#/s:4TRON25DownloadErrorSerializableP7request8response7fileURL5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0H0VSgs0C0_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Undocumented

    ","parent_name":"DownloadErrorSerializable"},"Protocols/ErrorSerializable.html#/s:4TRON17ErrorSerializableP7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs0B0_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Undocumented

    ","parent_name":"ErrorSerializable"},"Protocols/ErrorSerializable.html":{"name":"ErrorSerializable","abstract":"

    Protocol used to serialize errors received from sending APIRequest or UploadAPIRequest.

    "},"Protocols/DownloadErrorSerializable.html":{"name":"DownloadErrorSerializable","abstract":"

    Protocol used to serialize errors received from sending DownloadAPIRequest.

    "},"Protocols/TronDelegate.html":{"name":"TronDelegate","abstract":"

    Protocol used to allow APIRequest to communicate with TRON instance.

    "},"Protocols/RequestCancellable.html":{"name":"RequestCancellable","abstract":"

    Type-erased cancellation token.

    "},"Protocols/Plugin.html":{"name":"Plugin","abstract":"

    Protocol that serves to provide plugin functionality to TRON.

    "},"Extensions/Request.html#/s:4TRON12tron_apiStubAA7APIStubCSgvp":{"name":"tron_apiStub","abstract":"

    Undocumented

    ","parent_name":"Request"},"Extensions/DownloadRequest.html#/s:4TRON28performResponseSerializationyXeXeF":{"name":"performResponseSerialization(queue:responseSerializer:completionHandler:)","abstract":"

    Undocumented

    ","parent_name":"DownloadRequest"},"Extensions/DownloadRequest.html#/s:4TRON13cancelRequestyXeXeF":{"name":"cancelRequest()","abstract":"

    Cancel DownloadRequest

    ","parent_name":"DownloadRequest"},"Extensions/DataRequest.html#/s:4TRON13cancelRequestyXeXeF":{"name":"cancelRequest()","abstract":"

    Cancel DataRequest

    ","parent_name":"DataRequest"},"Extensions/DataRequest.html":{"name":"DataRequest"},"Extensions/DownloadRequest.html":{"name":"DownloadRequest"},"Extensions/Request.html":{"name":"Request"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO14uploadFromFileyAC10Foundation3URLVcACmF":{"name":"uploadFromFile(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithRequest(_:fromFile:) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO10uploadDatayAC10Foundation0F0VcACmF":{"name":"uploadData(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithRequest(_:fromData:) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO12uploadStreamyACSo07NSInputF0CcACmF":{"name":"uploadStream(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithStreamedRequest(_) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO17multipartFormData33_E020FFCAC445A24427FDF8E87B038D43LLXeF":{"name":"multipartFormData(formData:memoryThreshold:fileManager:)","abstract":"

    Undocumented

    ","parent_name":"UploadRequestType"},"Enums/DownloadRequestType.html#/s:4TRON19DownloadRequestTypeO8download33_685444C9D89FA38BC220D4CC4412F9CELLXeF":{"name":"download(_:)","abstract":"

    Will create NSURLSessionDownloadTask using downloadTaskWithRequest(_) method

    ","parent_name":"DownloadRequestType"},"Enums/DownloadRequestType.html#/s:4TRON19DownloadRequestTypeO16downloadResuming33_685444C9D89FA38BC220D4CC4412F9CELLXeF":{"name":"downloadResuming(data:destination:)","abstract":"

    Will create NSURLSessionDownloadTask using downloadTaskWithResumeData(_) method

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

    Types of DownloadAPIRequest.

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

    Types of UploadAPIRequest

    "},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO22appendingPathComponentyA2EmF":{"name":"appendingPathComponent","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO17relativeToBaseURLyA2EmF":{"name":"relativeToBaseURL","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO6customyAE10Foundation3URLVSS_SStccAEmF":{"name":"custom(_:)","abstract":"

    Undocumented

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

    Different behaviors to build URLs from base URL string and path.

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC13baseURLStringSSvp":{"name":"baseURLString","abstract":"

    Base URL string

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC8behaviorAC8BehaviorOvp":{"name":"behavior","abstract":"

    Behavior to build URL

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC7baseURL8behaviorACSS_AC8BehaviorOtcfc":{"name":"init(baseURL:behavior:)","abstract":"

    Initialize URL builder with Base URL String

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC3url7forPath10Foundation3URLVSS_tF":{"name":"url(forPath:)","abstract":"

    Construct URL with given path

    ","parent_name":"URLBuilder"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC12modelDecoder10Foundation11JSONDecoderCvp":{"name":"modelDecoder","abstract":"

    Decoder to be used while parsing model.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC_12modelDecoderAc2AC_10Foundation11JSONDecoderCtcfc":{"name":"init(_:modelDecoder:)","abstract":"

    Creates CodableSerializer with tron instance to send requests, and decoder to be used while parsing response.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC7requestyAA10APIRequestCyxq_GSSSeRzAA17ErrorSerializableR_r0_lF":{"name":"request(_:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.Default.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_10fromFileAtAA16UploadAPIRequestCyxq_GSS_10Foundation3URLVtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:fromFileAt:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadFromFile.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_4dataAA16UploadAPIRequestCyxq_GSS_10Foundation4DataVtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:data:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadData.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_4fromAA16UploadAPIRequestCyxq_GSS_So13NSInputStreamCtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:from:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadStream.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC15uploadMultipartyXeXeF":{"name":"uploadMultipart(_:encodingMemoryThreshold:fileManager:formData:)","abstract":"

    Creates MultipartAPIRequest with specified relative path.

    ","parent_name":"CodableSerializer"},"Classes/CodableParser.html#/s:4TRON13CodableParserC12modelDecoder10Foundation11JSONDecoderCvp":{"name":"modelDecoder","abstract":"

    Decoder used for decoding model object

    ","parent_name":"CodableParser"},"Classes/CodableParser.html#/s:4TRON13CodableParserC12modelDecoderACyxG10Foundation11JSONDecoderC_tcfc":{"name":"init(modelDecoder:)","abstract":"

    Creates CodableParser with model and error decoders

    ","parent_name":"CodableParser"},"Classes/CodableParser.html#/s:4TRON13CodableParserC9serialize7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI4DataVSgs5Error_pSgtKF":{"name":"serialize(request:response:data:error:)","abstract":"

    Method used by response handlers that takes a request, response, data and error and returns a result.

    ","parent_name":"CodableParser"},"Classes/TRON.html#/s:4TRONAAC10urlBuilderAA10URLBuilderCvp":{"name":"urlBuilder","abstract":"

    URL builder to be used by default in all requests. Can be overridden for specific requests.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC15stubbingEnabledSbvp":{"name":"stubbingEnabled","abstract":"

    Global property, that defines whether stubbing is enabled. It is simply set on each APIRequest instance and can be reset.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Global plugins, that will receive events from all requests, created from current TRON instance.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC17parameterEncodingXevp":{"name":"parameterEncoding","abstract":"

    Default parameter encoding, that will be set on all APIRequests. Can be overrided by setting new value on APIRequest.parameterEncoding property.","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC19resultDeliveryQueueSo17OS_dispatch_queueCvp":{"name":"resultDeliveryQueue","abstract":"

    Queue, used to deliver result completion blocks. Defaults to dispatch_get_main_queue().

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7codableAA17CodableSerializerCvp":{"name":"codable","abstract":"

    CodableSerializer for current TRON instance.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7sessionXevp":{"name":"session","abstract":"

    Alamofire.Session instance used to send network requests

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAACyXeXecfc":{"name":"init(baseURL:buildingURL:session:plugins:)","abstract":"

    Initializes TRON with given base URL, Alamofire.Session instance, and array of global plugins.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7request_18responseSerializerAA10APIRequestCyxq_GSS_q0_tAA17ErrorSerializableR_r1_lF":{"name":"request(_:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.Default.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_10fromFileAt18responseSerializerAA16UploadAPIRequestCyxq_GSS_10Foundation3URLVq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:fromFileAt:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadFromFile.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_4data18responseSerializerAA16UploadAPIRequestCyxq_GSS_10Foundation4DataVq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:data:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadData.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_4from18responseSerializerAA16UploadAPIRequestCyxq_GSS_So13NSInputStreamCq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:from:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadStream.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC15uploadMultipartyXeXeF":{"name":"uploadMultipart(_:responseSerializer:encodingMemoryThreshold:fileManager:formData:)","abstract":"

    Creates MultipartAPIRequest with specified relative path.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC8downloadyXeXeF":{"name":"download(_:to:resumingFrom:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.DownloadResuming.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7codable12modelDecoderAA17CodableSerializerC10Foundation11JSONDecoderC_tF":{"name":"codable(modelDecoder:)","abstract":"

    Creates CodableSerializer with current TRON instance and specific modelDecoder.

    ","parent_name":"TRON"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC10logSuccessSbvp":{"name":"logSuccess","abstract":"

    Log successful requests

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC11logFailuresSbvp":{"name":"logFailures","abstract":"

    Log unsuccessful requests

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC20logCancelledRequestsSbvp":{"name":"logCancelledRequests","abstract":"

    Log failures produced when request is cancelled. This property only works, if logFailures property is set to true.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC10logSuccess0E8Failures0E17CancelledRequestsACSb_S2btcfc":{"name":"init(logSuccess:logFailures:logCancelledRequests:)","abstract":"

    Creates ‘NetworkLoggerPlugin’

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC28didSuccessfullyParseResponseyXeXeF":{"name":"didSuccessfullyParseResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Called, when response was successfully parsed. If logSuccess property has been turned on, prints cURL representation of request.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC15didReceiveErroryXeXeF":{"name":"didReceiveError(_:forResponse:request:formedFrom:)","abstract":"

    Called, when request received error. If logFailures has been turned on, prints cURL representation of request and helpful debugging information such as status code, HTTP body contents and error message. If logCancelledRequests property is turned to true, they are also printed.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC11applicationACSo13UIApplicationC_tcfc":{"name":"init(application:)","abstract":"

    Undocumented

    ","parent_name":"NetworkActivityPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC23didSendAlamofireRequestyXeXeF":{"name":"didSendAlamofireRequest(_:formedFrom:)","abstract":"

    Called when network request was sent, increases networkActivityCount by 1

    ","parent_name":"NetworkActivityPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC19willProcessResponseyXeXeF":{"name":"willProcessResponse(response:forRequest:formedFrom:)","abstract":"

    Called when response for request was received, decreases networkActivityCount by 1

    ","parent_name":"NetworkActivityPlugin"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC0B14ResponseParsera":{"name":"DownloadResponseParser","abstract":"

    Serialize download response into Result<Model>.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC0B11ErrorParsera":{"name":"DownloadErrorParser","abstract":"

    Serializes received failed response into APIError object

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC4type4path4tron18responseSerializerACyxq_GAA0B11RequestTypeO_SSA2ACqd__tclufc":{"name":"init(type:path:tron:responseSerializer:)","abstract":"

    Creates DownloadAPIRequest with specified type, path and configures it with to be used with tron.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC9publisher7Combine12AnyPublisherVyxq_GyF":{"name":"publisher()","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent.

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC4type4path4tron18responseSerializerACyxq_GAA0B11RequestTypeO_SSA2ACqd__tclufc":{"name":"init(type:path:tron:responseSerializer:)","abstract":"

    Creates UploadAPIRequest with specified type, path and configures it with to be used with tron.

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC9publisher7Combine12AnyPublisherVyxq_GyF":{"name":"publisher()","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC14ResponseParsera":{"name":"ResponseParser","abstract":"

    Serializes Data into Model

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11ErrorParsera":{"name":"ErrorParser","abstract":"

    Serializes received failed response into APIError object

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4pathSSvp":{"name":"path","abstract":"

    Relative path of current request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6methodXevp":{"name":"method","abstract":"

    HTTP method

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10parametersSDySSypGvp":{"name":"parameters","abstract":"

    Parameters of current request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC17parameterEncodingXevp":{"name":"parameterEncoding","abstract":"

    Defines how parameters are encoded.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7headersXevp":{"name":"headers","abstract":"

    Headers, that should be used for current request. Defaults to HTTPHeaders.default

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10urlBuilderAA10URLBuilderCvp":{"name":"urlBuilder","abstract":"

    URL builder for current request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7apiStubAA7APIStubCSgvp":{"name":"apiStub","abstract":"

    API stub to be used when stubbing this request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11interceptorXevp":{"name":"interceptor","abstract":"

    Request interceptor that allows to adapt and retry requests.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC15requestModifierXevp":{"name":"requestModifier","abstract":"

    Closure which provides a URLRequest for mutation.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC19resultDeliveryQueueSo17OS_dispatch_queueCvp":{"name":"resultDeliveryQueue","abstract":"

    Queue, used to deliver result completion blocks. Defaults to TRON.resultDeliveryQueue queue.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Array of plugins for current APIRequest.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4path4tronACyxq_GSS_A2ACtcfc":{"name":"init(path:tron:)","abstract":"

    Creates BaseRequest instance, initialized with several TRON properties.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6methodyXeXeF":{"name":"method(_:)","abstract":"

    Sets method variable to httpMethod and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4postACyxq_GXDyF":{"name":"post()","abstract":"

    Sets method variable to .post and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7connectACyxq_GXDyF":{"name":"connect()","abstract":"

    Sets method variable to .connect and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6deleteACyxq_GXDyF":{"name":"delete()","abstract":"

    Sets method variable to .delete and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC3getACyxq_GXDyF":{"name":"get()","abstract":"

    Sets method variable to .get and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4headACyxq_GXDyF":{"name":"head()","abstract":"

    Sets method variable to .head and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7optionsACyxq_GXDyF":{"name":"options()","abstract":"

    Sets method variable to .options and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC5patchACyxq_GXDyF":{"name":"patch()","abstract":"

    Sets method variable to .patch and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC3putACyxq_GXDyF":{"name":"put()","abstract":"

    Sets method variable to .put and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC5traceACyxq_GXDyF":{"name":"trace()","abstract":"

    Sets method variable to .trace and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC17parameterEncodingyXeXeF":{"name":"parameterEncoding(_:)","abstract":"

    Sets parameterEncoding variable to encoding and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7headersyXeXeF":{"name":"headers(_:)","abstract":"

    Sets headers variable to headers and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11usingPluginyACyxq_GXDAA0E0_pF":{"name":"usingPlugin(_:)","abstract":"

    Appends plugin to plugins variable and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC8buildURLyACyxq_GXDAA10URLBuilderC8BehaviorOF":{"name":"buildURL(_:)","abstract":"

    Replaces urlBuilder with URLBuilder with the same baseURL string and behavior.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC9interceptyXeXeF":{"name":"intercept(using:)","abstract":"

    Sets per-request Interceptor for current request and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC06modifyC0yXeXeF":{"name":"modifyRequest(_:)","abstract":"

    Sets per-request modifier to configure URLRequest, that will be created.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC9configureyACyxq_GXDyAEXEF":{"name":"configure(_:)","abstract":"

    Configures current given request by executing closure and returning.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10parameters_7rootKeyACyxq_GXDSDySSypG_SSSgtF":{"name":"parameters(_:rootKey:)","abstract":"

    Sets parameters into parameters variable on request. If rootKey is non-nil, parameters are wrapped in external dictionary and set into parameters using rootKey as a single key.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC18optionalParameters_12setNilToNull7rootKeyACyxq_GXDSDySSypSgG_SbSSSgtF":{"name":"optionalParameters(_:setNilToNull:rootKey:)","abstract":"

    Sets parameters into parameters variable on request. If rootKey is non-nil, parameters are wrapped in external dictionary and set into parameters using rootKey as a single key.","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4stub4with5delay7enabledACyxq_GXDAA7APIStubC_SdSbtF":{"name":"stub(with:delay:enabled:)","abstract":"

    Sets stub into apiStub property, delay into apiStub.stubDelay property. Also enabled is set to apiStub.isEnabled property.

    ","parent_name":"BaseRequest"},"Classes/APIStub.html#/s:4TRON7APIStubC7request10Foundation10URLRequestVSgvp":{"name":"request","abstract":"

    URLRequest object to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC8responseSo17NSHTTPURLResponseCSgvp":{"name":"response","abstract":"

    HTTPURLResponse to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC4data10Foundation4DataVSgvp":{"name":"data","abstract":"

    Data to use when request is being stubbed. This property is ignored for DownloadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC5errors5Error_pSgvp":{"name":"error","abstract":"

    Error to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7fileURL10Foundation0D0VSgvp":{"name":"fileURL","abstract":"

    File URL to use when stubbing DownloadAPIRequest. This property is ignored for APIRequest and UploadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC9stubDelaySdvp":{"name":"stubDelay","abstract":"

    Delay before stub is executed

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC9isEnabledSbvp":{"name":"isEnabled","abstract":"

    When this property is set to true, stub will be activated. Defaults to false.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7request8response4data5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs5Error_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Creates APIStub instance for APIRequest and UploadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7request8response7fileURL5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0F0VSgs5Error_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Creates APIStub instance for DownloadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIRequest.html#/s:4TRON10APIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent. Defaults to { $0.validate() }

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC4path4tron18responseSerializerACyxq_GSS_A2ACqd__tclufc":{"name":"init(path:tron:responseSerializer:)","abstract":"

    Creates APIRequest, filling responseParser and errorParser properties

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC9publisher7Combine12AnyPublisherVyxq_GyF":{"name":"publisher()","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIError.html#/s:4TRON8APIErrorC7request10Foundation10URLRequestVSgvp":{"name":"request","abstract":"

    URLRequest that was unsuccessful

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC8responseSo17NSHTTPURLResponseCSgvp":{"name":"response","abstract":"

    Response received from web service

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC4data10Foundation4DataVSgvp":{"name":"data","abstract":"

    Data, contained in response. Nil, if this error is coming from a download request.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7fileURL10Foundation0D0VSgvp":{"name":"fileURL","abstract":"

    Downloaded fileURL. Nil, if used with upload or data requests.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC5errors5Error_pSgvp":{"name":"error","abstract":"

    Error instance, created by Foundation Loading System or Alamofire.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7request8response4data5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs5Error_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Undocumented

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7request8response7fileURL5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0F0VSgs5Error_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Undocumented

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC16errorDescriptionSSSgvp":{"name":"errorDescription","abstract":"

    Prints localized description of error inside

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC11isCancelledSbvp":{"name":"isCancelled","abstract":"

    Whether the request, that led to this error, was cancelled by the sender

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

    APIError is used as a generic wrapper for all kinds of API errors.

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

    APIRequest encapsulates request creation logic, stubbing options, and response/error parsing.

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

    APIStub instance that is used to represent stubbed response. Any properties of this class is presented to serialization classes as if they would be received by URL loading system.

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

    Base class, that contains common functionality, extracted from APIRequest and MultipartAPIRequest.

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

    UploadAPIRequest encapsulates upload request creation logic, stubbing options, and response/error parsing.

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

    DownloadAPIRequest encapsulates download request creation logic, stubbing options, and response/error parsing.

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

    Undocumented

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

    Plugin, that can be used to log network success and failure responses.

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

    TRON is a root object, that serves as a provider for single API endpoint. It is used to create and configure instances of APIRequest and MultipartAPIRequest.

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

    CodableParser is a wrapper around modelDecoder and errorDecoder JSONDecoders to be used when decoding JSON response.

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

    Serializer for objects, that conform to Decodable protocol.

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

    URLBuilder constructs resulting URL by calling URLByAppendingPathComponent method on baseURL.

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

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions are available globally.

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

    The following protocols are available globally.

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

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/FileURLPassthroughResponseSerializer.html#/s:4TRON36FileURLPassthroughResponseSerializerV15MissingURLErrorV":{"name":"MissingURLError","abstract":"

    Error returned when received fileURL is nil

    ","parent_name":"FileURLPassthroughResponseSerializer"},"Structs/FileURLPassthroughResponseSerializer.html#/s:4TRON36FileURLPassthroughResponseSerializerV17serializeDownload7request8response7fileURL5error10Foundation0K0VAI10URLRequestVSg_So17NSHTTPURLResponseCSgAKSgs5Error_pSgtKF":{"name":"serializeDownload(request:response:fileURL:error:)","abstract":"

    Extracts file URL from received response

    ","parent_name":"FileURLPassthroughResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV7closureyx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtKcvp":{"name":"closure","abstract":"

    Serialization closure to execute

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV7closureACyxGx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAF3URLVSgs5Error_pSgtKc_tcfc":{"name":"init(closure:)","abstract":"

    Creates response serializer from passed serialization closure

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV17serializeDownload7request8response7fileURL5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI0J0VSgs5Error_pSgtKF":{"name":"serializeDownload(request:response:fileURL:error:)","abstract":"

    Serializes received response into model object

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV7closureyx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"closure","abstract":"

    Serialization closure to execute

    ","parent_name":"TRONDataResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV7closureACyxGx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAF4DataVSgs5Error_pSgtKc_tcfc":{"name":"init(closure:)","abstract":"

    Creates response serializer from passed serialization closure

    ","parent_name":"TRONDataResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV9serialize7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI4DataVSgs5Error_pSgtKF":{"name":"serialize(request:response:data:error:)","abstract":"

    Serializes received response into model object

    ","parent_name":"TRONDataResponseSerializer"},"Structs/DownloadError.html#/s:4TRON13DownloadErrorV8responseXevp":{"name":"response","abstract":"

    Reported DownloadResponse

    ","parent_name":"DownloadError"},"Structs/DownloadError.html#/s:4TRON13DownloadErrorVyXeXecfc":{"name":"init(_:)","abstract":"

    Creates DownloadError for DownloadAPIRequest.

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

    Error that is created in case DownloadAPIRequest errors out, but Alamofire and URL loading system report error as nil."},"Structs/TRONDataResponseSerializer.html":{"name":"TRONDataResponseSerializer","abstract":"

    Response serializer, that wraps serialization closure to implement Alamofire.DataResponseSerializerProtocol. Is used for APIRequest and UploadAPIRequest.

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

    Response serializer, that wraps serialization closure to implement Alamofire.DownloadResponseSerializerProtocol. Is used for DownloadAPIRequest.

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

    Response serializer, that returns file URL upon successful download. Is used for DownloadAPIRequest.

    "},"Protocols/Plugin.html#/s:4TRON6PluginP15willSendRequestyyAA04BaseE0Cyqd__qd_0_Gr0_lF":{"name":"willSendRequest(_:)","abstract":"

    Notifies that request is about to be converted to Alamofire.Request

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP24willSendAlamofireRequestyXeXeF":{"name":"willSendAlamofireRequest(_:formedFrom:)","abstract":"

    Notifies that request formed from tronRequest, is about to be sent.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP23didSendAlamofireRequestyXeXeF":{"name":"didSendAlamofireRequest(_:formedFrom:)","abstract":"

    Notifies that request, formed from tronRequest, was sent.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP19willProcessResponseyXeXeF":{"name":"willProcessResponse(response:forRequest:formedFrom:)","abstract":"

    Notifies that response was received for request, formed from tronRequest.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP28didSuccessfullyParseResponseyXeXeF":{"name":"didSuccessfullyParseResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Notifies that response for request, formed from tronRequest, was successfully parsed into result.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP15didReceiveErroryXeXeF":{"name":"didReceiveError(_:forResponse:request:formedFrom:)","abstract":"

    Notifies that request processed response and created APIError<ErrorModel> instance.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP23didReceiveDownloadErroryXeXeF":{"name":"didReceiveDownloadError(_:forResponse:request:formedFrom:)","abstract":"

    Notifies that request processed response and created APIError<ErrorModel> instance.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP22didReceiveDataResponseyXeXeF":{"name":"didReceiveDataResponse(_:forRequest:formedFrom:)","abstract":"

    Notifies about data response that was received for request, formed from tronRequest. This method is called after parsing has completed.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP26didReceiveDownloadResponseyXeXeF":{"name":"didReceiveDownloadResponse(_:forRequest:formedFrom:)","abstract":"

    Notifies about download response that was received for request, formed from tronRequest. This method is called after parsing has completed.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP36didSuccessfullyParseDownloadResponseyXeXeF":{"name":"didSuccessfullyParseDownloadResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Notifies that response for request, formed from tronRequest, was successfully parsed into result.

    ","parent_name":"Plugin"},"Protocols/RequestCancellable.html#/s:4TRON18RequestCancellableP06cancelB0yyF":{"name":"cancelRequest()","abstract":"

    Cancel current request

    ","parent_name":"RequestCancellable"},"Protocols/TronDelegate.html#/s:4TRON12TronDelegateP7sessionXevp":{"name":"session","abstract":"

    Alamofire.Session used to send requests

    ","parent_name":"TronDelegate"},"Protocols/TronDelegate.html#/s:4TRON12TronDelegateP7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Global array of plugins on TRON instance

    ","parent_name":"TronDelegate"},"Protocols/DownloadErrorSerializable.html#/s:4TRON25DownloadErrorSerializableP7request8response7fileURL5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0H0VSgs0C0_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Undocumented

    ","parent_name":"DownloadErrorSerializable"},"Protocols/ErrorSerializable.html#/s:4TRON17ErrorSerializableP7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs0B0_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Undocumented

    ","parent_name":"ErrorSerializable"},"Protocols/ErrorSerializable.html":{"name":"ErrorSerializable","abstract":"

    Protocol used to serialize errors received from sending APIRequest or UploadAPIRequest.

    "},"Protocols/DownloadErrorSerializable.html":{"name":"DownloadErrorSerializable","abstract":"

    Protocol used to serialize errors received from sending DownloadAPIRequest.

    "},"Protocols/TronDelegate.html":{"name":"TronDelegate","abstract":"

    Protocol used to allow APIRequest to communicate with TRON instance.

    "},"Protocols/RequestCancellable.html":{"name":"RequestCancellable","abstract":"

    Type-erased cancellation token.

    "},"Protocols/Plugin.html":{"name":"Plugin","abstract":"

    Protocol that serves to provide plugin functionality to TRON.

    "},"Extensions/Request.html#/s:4TRON12tron_apiStubAA7APIStubCSgvp":{"name":"tron_apiStub","abstract":"

    Undocumented

    ","parent_name":"Request"},"Extensions/DownloadRequest.html#/s:4TRON28performResponseSerializationyXeXeF":{"name":"performResponseSerialization(queue:responseSerializer:completionHandler:)","abstract":"

    Undocumented

    ","parent_name":"DownloadRequest"},"Extensions/DownloadRequest.html#/s:4TRON13cancelRequestyXeXeF":{"name":"cancelRequest()","abstract":"

    Cancel DownloadRequest

    ","parent_name":"DownloadRequest"},"Extensions/DataRequest.html#/s:4TRON13cancelRequestyXeXeF":{"name":"cancelRequest()","abstract":"

    Cancel DataRequest

    ","parent_name":"DataRequest"},"Extensions/DataRequest.html":{"name":"DataRequest"},"Extensions/DownloadRequest.html":{"name":"DownloadRequest"},"Extensions/Request.html":{"name":"Request"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO14uploadFromFileyAC10Foundation3URLVcACmF":{"name":"uploadFromFile(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithRequest(_:fromFile:) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO10uploadDatayAC10Foundation0F0VcACmF":{"name":"uploadData(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithRequest(_:fromData:) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO12uploadStreamyACSo07NSInputF0CcACmF":{"name":"uploadStream(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithStreamedRequest(_) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO17multipartFormData33_E020FFCAC445A24427FDF8E87B038D43LLXeF":{"name":"multipartFormData(formData:memoryThreshold:fileManager:)","abstract":"

    Undocumented

    ","parent_name":"UploadRequestType"},"Enums/DownloadRequestType.html#/s:4TRON19DownloadRequestTypeO8download33_685444C9D89FA38BC220D4CC4412F9CELLXeF":{"name":"download(_:)","abstract":"

    Will create NSURLSessionDownloadTask using downloadTaskWithRequest(_) method

    ","parent_name":"DownloadRequestType"},"Enums/DownloadRequestType.html#/s:4TRON19DownloadRequestTypeO16downloadResuming33_685444C9D89FA38BC220D4CC4412F9CELLXeF":{"name":"downloadResuming(data:destination:)","abstract":"

    Will create NSURLSessionDownloadTask using downloadTaskWithResumeData(_) method

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

    Types of DownloadAPIRequest.

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

    Types of UploadAPIRequest

    "},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent.

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC4type4path4tron18responseSerializerACyxq_GAA0B11RequestTypeO_SSA2ACqd__tclufc":{"name":"init(type:path:tron:responseSerializer:)","abstract":"

    Creates UploadAPIRequest with specified type, path and configures it with to be used with tron.

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO22appendingPathComponentyA2EmF":{"name":"appendingPathComponent","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO17relativeToBaseURLyA2EmF":{"name":"relativeToBaseURL","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO6customyAE10Foundation3URLVSS_SStccAEmF":{"name":"custom(_:)","abstract":"

    Undocumented

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

    Different behaviors to build URLs from base URL string and path.

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC13baseURLStringSSvp":{"name":"baseURLString","abstract":"

    Base URL string

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC8behaviorAC8BehaviorOvp":{"name":"behavior","abstract":"

    Behavior to build URL

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC7baseURL8behaviorACSS_AC8BehaviorOtcfc":{"name":"init(baseURL:behavior:)","abstract":"

    Initialize URL builder with Base URL String

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC3url7forPath10Foundation3URLVSS_tF":{"name":"url(forPath:)","abstract":"

    Construct URL with given path

    ","parent_name":"URLBuilder"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC12modelDecoder10Foundation11JSONDecoderCvp":{"name":"modelDecoder","abstract":"

    Decoder to be used while parsing model.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC_12modelDecoderAc2AC_10Foundation11JSONDecoderCtcfc":{"name":"init(_:modelDecoder:)","abstract":"

    Creates CodableSerializer with tron instance to send requests, and decoder to be used while parsing response.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC7requestyAA10APIRequestCyxq_GSSSeRzAA17ErrorSerializableR_r0_lF":{"name":"request(_:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.Default.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_10fromFileAtAA16UploadAPIRequestCyxq_GSS_10Foundation3URLVtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:fromFileAt:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadFromFile.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_4dataAA16UploadAPIRequestCyxq_GSS_10Foundation4DataVtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:data:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadData.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_4fromAA16UploadAPIRequestCyxq_GSS_So13NSInputStreamCtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:from:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadStream.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC15uploadMultipartyXeXeF":{"name":"uploadMultipart(_:encodingMemoryThreshold:fileManager:formData:)","abstract":"

    Creates MultipartAPIRequest with specified relative path.

    ","parent_name":"CodableSerializer"},"Classes/CodableParser.html#/s:4TRON13CodableParserC12modelDecoder10Foundation11JSONDecoderCvp":{"name":"modelDecoder","abstract":"

    Decoder used for decoding model object

    ","parent_name":"CodableParser"},"Classes/CodableParser.html#/s:4TRON13CodableParserC12modelDecoderACyxG10Foundation11JSONDecoderC_tcfc":{"name":"init(modelDecoder:)","abstract":"

    Creates CodableParser with model and error decoders

    ","parent_name":"CodableParser"},"Classes/CodableParser.html#/s:4TRON13CodableParserC9serialize7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI4DataVSgs5Error_pSgtKF":{"name":"serialize(request:response:data:error:)","abstract":"

    Method used by response handlers that takes a request, response, data and error and returns a result.

    ","parent_name":"CodableParser"},"Classes/TRON.html#/s:4TRONAAC10urlBuilderAA10URLBuilderCvp":{"name":"urlBuilder","abstract":"

    URL builder to be used by default in all requests. Can be overridden for specific requests.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC15stubbingEnabledSbvp":{"name":"stubbingEnabled","abstract":"

    Global property, that defines whether stubbing is enabled. It is simply set on each APIRequest instance and can be reset.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Global plugins, that will receive events from all requests, created from current TRON instance.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC17parameterEncodingXevp":{"name":"parameterEncoding","abstract":"

    Default parameter encoding, that will be set on all APIRequests. Can be overrided by setting new value on APIRequest.parameterEncoding property.","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC19resultDeliveryQueueSo17OS_dispatch_queueCvp":{"name":"resultDeliveryQueue","abstract":"

    Queue, used to deliver result completion blocks. Defaults to dispatch_get_main_queue().

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7codableAA17CodableSerializerCvp":{"name":"codable","abstract":"

    CodableSerializer for current TRON instance.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7sessionXevp":{"name":"session","abstract":"

    Alamofire.Session instance used to send network requests

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAACyXeXecfc":{"name":"init(baseURL:buildingURL:session:plugins:)","abstract":"

    Initializes TRON with given base URL, Alamofire.Session instance, and array of global plugins.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7request_18responseSerializerAA10APIRequestCyxq_GSS_q0_tAA17ErrorSerializableR_r1_lF":{"name":"request(_:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.Default.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_10fromFileAt18responseSerializerAA16UploadAPIRequestCyxq_GSS_10Foundation3URLVq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:fromFileAt:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadFromFile.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_4data18responseSerializerAA16UploadAPIRequestCyxq_GSS_10Foundation4DataVq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:data:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadData.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_4from18responseSerializerAA16UploadAPIRequestCyxq_GSS_So13NSInputStreamCq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:from:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadStream.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC15uploadMultipartyXeXeF":{"name":"uploadMultipart(_:responseSerializer:encodingMemoryThreshold:fileManager:formData:)","abstract":"

    Creates MultipartAPIRequest with specified relative path.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC8downloadyXeXeF":{"name":"download(_:to:resumingFrom:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.DownloadResuming.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7codable12modelDecoderAA17CodableSerializerC10Foundation11JSONDecoderC_tF":{"name":"codable(modelDecoder:)","abstract":"

    Creates CodableSerializer with current TRON instance and specific modelDecoder.

    ","parent_name":"TRON"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC10logSuccessSbvp":{"name":"logSuccess","abstract":"

    Log successful requests

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC11logFailuresSbvp":{"name":"logFailures","abstract":"

    Log unsuccessful requests

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC20logCancelledRequestsSbvp":{"name":"logCancelledRequests","abstract":"

    Log failures produced when request is cancelled. This property only works, if logFailures property is set to true.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC10logSuccess0E8Failures0E17CancelledRequestsACSb_S2btcfc":{"name":"init(logSuccess:logFailures:logCancelledRequests:)","abstract":"

    Creates ‘NetworkLoggerPlugin’

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC28didSuccessfullyParseResponseyXeXeF":{"name":"didSuccessfullyParseResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Called, when response was successfully parsed. If logSuccess property has been turned on, prints cURL representation of request.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC15didReceiveErroryXeXeF":{"name":"didReceiveError(_:forResponse:request:formedFrom:)","abstract":"

    Called, when request received error. If logFailures has been turned on, prints cURL representation of request and helpful debugging information such as status code, HTTP body contents and error message. If logCancelledRequests property is turned to true, they are also printed.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC11applicationACSo13UIApplicationC_tcfc":{"name":"init(application:)","abstract":"

    Undocumented

    ","parent_name":"NetworkActivityPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC23didSendAlamofireRequestyXeXeF":{"name":"didSendAlamofireRequest(_:formedFrom:)","abstract":"

    Called when network request was sent, increases networkActivityCount by 1

    ","parent_name":"NetworkActivityPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC19willProcessResponseyXeXeF":{"name":"willProcessResponse(response:forRequest:formedFrom:)","abstract":"

    Called when response for request was received, decreases networkActivityCount by 1

    ","parent_name":"NetworkActivityPlugin"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC0B14ResponseParsera":{"name":"DownloadResponseParser","abstract":"

    Serialize download response into Result<Model>.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC0B11ErrorParsera":{"name":"DownloadErrorParser","abstract":"

    Serializes received failed response into APIError object

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC4type4path4tron18responseSerializerACyxq_GAA0B11RequestTypeO_SSA2ACqd__tclufc":{"name":"init(type:path:tron:responseSerializer:)","abstract":"

    Creates DownloadAPIRequest with specified type, path and configures it with to be used with tron.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC14ResponseParsera":{"name":"ResponseParser","abstract":"

    Serializes Data into Model

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11ErrorParsera":{"name":"ErrorParser","abstract":"

    Serializes received failed response into APIError object

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4pathSSvp":{"name":"path","abstract":"

    Relative path of current request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6methodXevp":{"name":"method","abstract":"

    HTTP method

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10parametersSDySSypGvp":{"name":"parameters","abstract":"

    Parameters of current request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC17parameterEncodingXevp":{"name":"parameterEncoding","abstract":"

    Defines how parameters are encoded.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7headersXevp":{"name":"headers","abstract":"

    Headers, that should be used for current request. Defaults to HTTPHeaders.default

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10urlBuilderAA10URLBuilderCvp":{"name":"urlBuilder","abstract":"

    URL builder for current request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7apiStubAA7APIStubCSgvp":{"name":"apiStub","abstract":"

    API stub to be used when stubbing this request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11interceptorXevp":{"name":"interceptor","abstract":"

    Request interceptor that allows to adapt and retry requests.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC15requestModifierXevp":{"name":"requestModifier","abstract":"

    Closure which provides a URLRequest for mutation.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC19resultDeliveryQueueSo17OS_dispatch_queueCvp":{"name":"resultDeliveryQueue","abstract":"

    Queue, used to deliver result completion blocks. Defaults to TRON.resultDeliveryQueue queue.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Array of plugins for current APIRequest.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4path4tronACyxq_GSS_A2ACtcfc":{"name":"init(path:tron:)","abstract":"

    Creates BaseRequest instance, initialized with several TRON properties.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6methodyXeXeF":{"name":"method(_:)","abstract":"

    Sets method variable to httpMethod and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4postACyxq_GXDyF":{"name":"post()","abstract":"

    Sets method variable to .post and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7connectACyxq_GXDyF":{"name":"connect()","abstract":"

    Sets method variable to .connect and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6deleteACyxq_GXDyF":{"name":"delete()","abstract":"

    Sets method variable to .delete and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC3getACyxq_GXDyF":{"name":"get()","abstract":"

    Sets method variable to .get and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4headACyxq_GXDyF":{"name":"head()","abstract":"

    Sets method variable to .head and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7optionsACyxq_GXDyF":{"name":"options()","abstract":"

    Sets method variable to .options and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC5patchACyxq_GXDyF":{"name":"patch()","abstract":"

    Sets method variable to .patch and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC3putACyxq_GXDyF":{"name":"put()","abstract":"

    Sets method variable to .put and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC5traceACyxq_GXDyF":{"name":"trace()","abstract":"

    Sets method variable to .trace and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC17parameterEncodingyXeXeF":{"name":"parameterEncoding(_:)","abstract":"

    Sets parameterEncoding variable to encoding and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7headersyXeXeF":{"name":"headers(_:)","abstract":"

    Sets headers variable to headers and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11usingPluginyACyxq_GXDAA0E0_pF":{"name":"usingPlugin(_:)","abstract":"

    Appends plugin to plugins variable and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC8buildURLyACyxq_GXDAA10URLBuilderC8BehaviorOF":{"name":"buildURL(_:)","abstract":"

    Replaces urlBuilder with URLBuilder with the same baseURL string and behavior.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC9interceptyXeXeF":{"name":"intercept(using:)","abstract":"

    Sets per-request Interceptor for current request and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC06modifyC0yXeXeF":{"name":"modifyRequest(_:)","abstract":"

    Sets per-request modifier to configure URLRequest, that will be created.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC9configureyACyxq_GXDyAEXEF":{"name":"configure(_:)","abstract":"

    Configures current given request by executing closure and returning.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10parameters_7rootKeyACyxq_GXDSDySSypG_SSSgtF":{"name":"parameters(_:rootKey:)","abstract":"

    Sets parameters into parameters variable on request. If rootKey is non-nil, parameters are wrapped in external dictionary and set into parameters using rootKey as a single key.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC18optionalParameters_12setNilToNull7rootKeyACyxq_GXDSDySSypSgG_SbSSSgtF":{"name":"optionalParameters(_:setNilToNull:rootKey:)","abstract":"

    Sets parameters into parameters variable on request. If rootKey is non-nil, parameters are wrapped in external dictionary and set into parameters using rootKey as a single key.","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4stub4with5delay7enabledACyxq_GXDAA7APIStubC_SdSbtF":{"name":"stub(with:delay:enabled:)","abstract":"

    Sets stub into apiStub property, delay into apiStub.stubDelay property. Also enabled is set to apiStub.isEnabled property.

    ","parent_name":"BaseRequest"},"Classes/APIStub.html#/s:4TRON7APIStubC7request10Foundation10URLRequestVSgvp":{"name":"request","abstract":"

    URLRequest object to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC8responseSo17NSHTTPURLResponseCSgvp":{"name":"response","abstract":"

    HTTPURLResponse to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC4data10Foundation4DataVSgvp":{"name":"data","abstract":"

    Data to use when request is being stubbed. This property is ignored for DownloadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC5errors5Error_pSgvp":{"name":"error","abstract":"

    Error to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7fileURL10Foundation0D0VSgvp":{"name":"fileURL","abstract":"

    File URL to use when stubbing DownloadAPIRequest. This property is ignored for APIRequest and UploadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC9stubDelaySdvp":{"name":"stubDelay","abstract":"

    Delay before stub is executed

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC9isEnabledSbvp":{"name":"isEnabled","abstract":"

    When this property is set to true, stub will be activated. Defaults to false.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7request8response4data5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs5Error_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Creates APIStub instance for APIRequest and UploadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7request8response7fileURL5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0F0VSgs5Error_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Creates APIStub instance for DownloadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIRequest.html#/s:4TRON10APIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent. Defaults to { $0.validate() }

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC4path4tron18responseSerializerACyxq_GSS_A2ACqd__tclufc":{"name":"init(path:tron:responseSerializer:)","abstract":"

    Creates APIRequest, filling responseParser and errorParser properties

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIError.html#/s:4TRON8APIErrorC7request10Foundation10URLRequestVSgvp":{"name":"request","abstract":"

    URLRequest that was unsuccessful

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC8responseSo17NSHTTPURLResponseCSgvp":{"name":"response","abstract":"

    Response received from web service

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC4data10Foundation4DataVSgvp":{"name":"data","abstract":"

    Data, contained in response. Nil, if this error is coming from a download request.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7fileURL10Foundation0D0VSgvp":{"name":"fileURL","abstract":"

    Downloaded fileURL. Nil, if used with upload or data requests.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC5errors5Error_pSgvp":{"name":"error","abstract":"

    Error instance, created by Foundation Loading System or Alamofire.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7request8response4data5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs5Error_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Undocumented

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7request8response7fileURL5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0F0VSgs5Error_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Undocumented

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC16errorDescriptionSSSgvp":{"name":"errorDescription","abstract":"

    Prints localized description of error inside

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC11isCancelledSbvp":{"name":"isCancelled","abstract":"

    Whether the request, that led to this error, was cancelled by the sender

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

    APIError is used as a generic wrapper for all kinds of API errors.

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

    APIRequest encapsulates request creation logic, stubbing options, and response/error parsing.

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

    APIStub instance that is used to represent stubbed response. Any properties of this class is presented to serialization classes as if they would be received by URL loading system.

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

    Base class, that contains common functionality, extracted from APIRequest and MultipartAPIRequest.

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

    DownloadAPIRequest encapsulates download request creation logic, stubbing options, and response/error parsing.

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

    Undocumented

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

    Plugin, that can be used to log network success and failure responses.

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

    TRON is a root object, that serves as a provider for single API endpoint. It is used to create and configure instances of APIRequest and MultipartAPIRequest.

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

    CodableParser is a wrapper around modelDecoder and errorDecoder JSONDecoders to be used when decoding JSON response.

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

    Serializer for objects, that conform to Decodable protocol.

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

    URLBuilder constructs resulting URL by calling URLByAppendingPathComponent method on baseURL.

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

    UploadAPIRequest encapsulates upload request creation logic, stubbing options, and response/error parsing.

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

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions are available globally.

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

    The following protocols are available globally.

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

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/TRON.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/TRON.docset/Contents/Resources/Documents/undocumented.json index 61d2271a..d554595e 100644 --- a/docs/docsets/TRON.docset/Contents/Resources/Documents/undocumented.json +++ b/docs/docsets/TRON.docset/Contents/Resources/Documents/undocumented.json @@ -30,14 +30,14 @@ }, { "file": "/Users/Denys/Projects/TRON/Source/TRON/APIRequest.swift", - "line": 82, + "line": 83, "symbol": "APIRequest.perform(withSuccess:failure:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/Denys/Projects/TRON/Source/TRON/APIRequest.swift", - "line": 96, + "line": 97, "symbol": "APIRequest.performCollectingTimeline(withCompletion:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" @@ -63,30 +63,51 @@ "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, + { + "file": "/Users/Denys/Projects/TRON/Source/TRON/Combine.swift", + "line": 75, + "symbol": "APIRequest.publisher()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/Denys/Projects/TRON/Source/TRON/Combine.swift", + "line": 92, + "symbol": "UploadAPIRequest.publisher()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, + { + "file": "/Users/Denys/Projects/TRON/Source/TRON/Combine.swift", + "line": 109, + "symbol": "DownloadAPIRequest.publisher()", + "symbol_kind": "source.lang.swift.decl.function.method.instance", + "warning": "undocumented" + }, { "file": "/Users/Denys/Projects/TRON/Source/TRON/DownloadAPIRequest.swift", - "line": 111, + "line": 112, "symbol": "DownloadAPIRequest.perform(withSuccess:failure:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/Denys/Projects/TRON/Source/TRON/DownloadAPIRequest.swift", - "line": 136, + "line": 137, "symbol": "DownloadAPIRequest.performCollectingTimeline(withCompletion:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/Denys/Projects/TRON/Source/TRON/NetworkActivityPlugin.swift", - "line": 38, + "line": 39, "symbol": "NetworkActivityPlugin", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { "file": "/Users/Denys/Projects/TRON/Source/TRON/NetworkActivityPlugin.swift", - "line": 42, + "line": 43, "symbol": "NetworkActivityPlugin.init(application:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" @@ -121,14 +142,14 @@ }, { "file": "/Users/Denys/Projects/TRON/Source/TRON/UploadAPIRequest.swift", - "line": 130, + "line": 131, "symbol": "UploadAPIRequest.perform(withSuccess:failure:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" }, { "file": "/Users/Denys/Projects/TRON/Source/TRON/UploadAPIRequest.swift", - "line": 144, + "line": 145, "symbol": "UploadAPIRequest.performCollectingTimeline(withCompletion:)", "symbol_kind": "source.lang.swift.decl.function.method.instance", "warning": "undocumented" diff --git a/docs/docsets/TRON.docset/Contents/Resources/docSet.dsidx b/docs/docsets/TRON.docset/Contents/Resources/docSet.dsidx index b571bdcbd77d364dc1d9f18a67dbd4891f87fd65..a5c053e8fa1b4d8631177df0fbd45cc10cdf87c8 100644 GIT binary patch delta 3974 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 diff --git a/docs/docsets/TRON.tgz b/docs/docsets/TRON.tgz index c092d297555ed6a98e85053ac3688f28dad531ac..158956dfbc0f1d2147691c6bbfee82f9bf1cbc19 100644 GIT binary patch delta 120795 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%0D5Le_Fl!uXpd<{mc7*th|5g{_pSq;eT#z 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 F6#%-Z2Z{gy delta 121161 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.3.0https://mlsdev.github.io/TRON/docsets/TRON.tgz +5.4.0https://mlsdev.github.io/TRON/docsets/TRON.tgz diff --git a/docs/index.html b/docs/index.html index 7261e8ce..50669c9b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -22,7 +22,7 @@ TRON Docs - (88% documented) + (89% documented)

    @@ -172,11 +172,11 @@

    - +

    CI -codecov.io +codecov.io CocoaPod platform CocoaPod version Swift Package Manager compatible @@ -225,21 +225,21 @@

    Swift Package M

    TRON framework includes Codable implementation. To use SwiftyJSON, import TRONSwiftyJSON framework. To use RxSwift wrapper, import RxTRON.

    CocoaPods

    -
    pod 'TRON', '~> 5.0.0'
    +
    pod 'TRON', '~> 5.3.0'
     

    Only Core subspec, without SwiftyJSON dependency:

    -
    pod 'TRON/Core', '~> 5.0.0'
    +
    pod 'TRON/Core', '~> 5.3.0'
     

    RxSwift extension for TRON:

    -
    pod 'TRON/RxSwift', '~> 5.0.0'
    +
    pod 'TRON/RxSwift', '~> 5.3.0'
     

    Migration Guides

    Project status

    @@ -348,7 +348,7 @@

    JSONDecodable

    You can also use Alamofire.Empty struct in cases where you don’t care about actual response.

    -

    Some concepts for response serialization, including array response serializer, are described in Container Types Parsing document

    +

    Some concepts for response serialization, including array response serializer, are described in Container Types Parsing document

    It’s possible to customize JSONSerialization.ReadingOptions, that are used by SwiftyJSON.JSON object while parsing data of the response:

    let request : APIRequest<String, APIError> = tron.swiftyJSON(readingOptions: .allowFragments).request("status")
    @@ -499,7 +499,7 @@ 

    Alternatives

    We are dedicated to building best possible tool for interacting with RESTful web-services. However, we understand, that every tool has it’s purpose, and therefore it’s always useful to know, what other tools can be used to achieve the same goal.

    -

    TRON was heavily inspired by Moya framework and LevelUPSDK

    +

    TRON was heavily inspired by Moya framework and LevelUPSDK, which is no longer available in open-source.

    License

    TRON is released under the MIT license. See LICENSE for details.

    @@ -518,7 +518,7 @@

    About MLSDev

    diff --git a/docs/search.json b/docs/search.json index f6125def..ffd9fd05 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Structs/FileURLPassthroughResponseSerializer.html#/s:4TRON36FileURLPassthroughResponseSerializerV15MissingURLErrorV":{"name":"MissingURLError","abstract":"

    Error returned when received fileURL is nil

    ","parent_name":"FileURLPassthroughResponseSerializer"},"Structs/FileURLPassthroughResponseSerializer.html#/s:4TRON36FileURLPassthroughResponseSerializerV17serializeDownload7request8response7fileURL5error10Foundation0K0VAI10URLRequestVSg_So17NSHTTPURLResponseCSgAKSgs5Error_pSgtKF":{"name":"serializeDownload(request:response:fileURL:error:)","abstract":"

    Extracts file URL from received response

    ","parent_name":"FileURLPassthroughResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV7closureyx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtKcvp":{"name":"closure","abstract":"

    Serialization closure to execute

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV7closureACyxGx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAF3URLVSgs5Error_pSgtKc_tcfc":{"name":"init(closure:)","abstract":"

    Creates response serializer from passed serialization closure

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV17serializeDownload7request8response7fileURL5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI0J0VSgs5Error_pSgtKF":{"name":"serializeDownload(request:response:fileURL:error:)","abstract":"

    Serializes received response into model object

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV7closureyx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"closure","abstract":"

    Serialization closure to execute

    ","parent_name":"TRONDataResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV7closureACyxGx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAF4DataVSgs5Error_pSgtKc_tcfc":{"name":"init(closure:)","abstract":"

    Creates response serializer from passed serialization closure

    ","parent_name":"TRONDataResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV9serialize7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI4DataVSgs5Error_pSgtKF":{"name":"serialize(request:response:data:error:)","abstract":"

    Serializes received response into model object

    ","parent_name":"TRONDataResponseSerializer"},"Structs/DownloadError.html#/s:4TRON13DownloadErrorV8responseXevp":{"name":"response","abstract":"

    Reported DownloadResponse

    ","parent_name":"DownloadError"},"Structs/DownloadError.html#/s:4TRON13DownloadErrorVyXeXecfc":{"name":"init(_:)","abstract":"

    Creates DownloadError for DownloadAPIRequest.

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

    Error that is created in case DownloadAPIRequest errors out, but Alamofire and URL loading system report error as nil."},"Structs/TRONDataResponseSerializer.html":{"name":"TRONDataResponseSerializer","abstract":"

    Response serializer, that wraps serialization closure to implement Alamofire.DataResponseSerializerProtocol. Is used for APIRequest and UploadAPIRequest.

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

    Response serializer, that wraps serialization closure to implement Alamofire.DownloadResponseSerializerProtocol. Is used for DownloadAPIRequest.

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

    Response serializer, that returns file URL upon successful download. Is used for DownloadAPIRequest.

    "},"Protocols/Plugin.html#/s:4TRON6PluginP15willSendRequestyyAA04BaseE0Cyqd__qd_0_Gr0_lF":{"name":"willSendRequest(_:)","abstract":"

    Notifies that request is about to be converted to Alamofire.Request

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP24willSendAlamofireRequestyXeXeF":{"name":"willSendAlamofireRequest(_:formedFrom:)","abstract":"

    Notifies that request formed from tronRequest, is about to be sent.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP23didSendAlamofireRequestyXeXeF":{"name":"didSendAlamofireRequest(_:formedFrom:)","abstract":"

    Notifies that request, formed from tronRequest, was sent.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP19willProcessResponseyXeXeF":{"name":"willProcessResponse(response:forRequest:formedFrom:)","abstract":"

    Notifies that response was received for request, formed from tronRequest.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP28didSuccessfullyParseResponseyXeXeF":{"name":"didSuccessfullyParseResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Notifies that response for request, formed from tronRequest, was successfully parsed into result.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP15didReceiveErroryXeXeF":{"name":"didReceiveError(_:forResponse:request:formedFrom:)","abstract":"

    Notifies that request processed response and created APIError<ErrorModel> instance.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP23didReceiveDownloadErroryXeXeF":{"name":"didReceiveDownloadError(_:forResponse:request:formedFrom:)","abstract":"

    Notifies that request processed response and created APIError<ErrorModel> instance.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP22didReceiveDataResponseyXeXeF":{"name":"didReceiveDataResponse(_:forRequest:formedFrom:)","abstract":"

    Notifies about data response that was received for request, formed from tronRequest. This method is called after parsing has completed.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP26didReceiveDownloadResponseyXeXeF":{"name":"didReceiveDownloadResponse(_:forRequest:formedFrom:)","abstract":"

    Notifies about download response that was received for request, formed from tronRequest. This method is called after parsing has completed.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP36didSuccessfullyParseDownloadResponseyXeXeF":{"name":"didSuccessfullyParseDownloadResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Notifies that response for request, formed from tronRequest, was successfully parsed into result.

    ","parent_name":"Plugin"},"Protocols/RequestCancellable.html#/s:4TRON18RequestCancellableP06cancelB0yyF":{"name":"cancelRequest()","abstract":"

    Cancel current request

    ","parent_name":"RequestCancellable"},"Protocols/TronDelegate.html#/s:4TRON12TronDelegateP7sessionXevp":{"name":"session","abstract":"

    Alamofire.Session used to send requests

    ","parent_name":"TronDelegate"},"Protocols/TronDelegate.html#/s:4TRON12TronDelegateP7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Global array of plugins on TRON instance

    ","parent_name":"TronDelegate"},"Protocols/DownloadErrorSerializable.html#/s:4TRON25DownloadErrorSerializableP7request8response7fileURL5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0H0VSgs0C0_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Undocumented

    ","parent_name":"DownloadErrorSerializable"},"Protocols/ErrorSerializable.html#/s:4TRON17ErrorSerializableP7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs0B0_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Undocumented

    ","parent_name":"ErrorSerializable"},"Protocols/ErrorSerializable.html":{"name":"ErrorSerializable","abstract":"

    Protocol used to serialize errors received from sending APIRequest or UploadAPIRequest.

    "},"Protocols/DownloadErrorSerializable.html":{"name":"DownloadErrorSerializable","abstract":"

    Protocol used to serialize errors received from sending DownloadAPIRequest.

    "},"Protocols/TronDelegate.html":{"name":"TronDelegate","abstract":"

    Protocol used to allow APIRequest to communicate with TRON instance.

    "},"Protocols/RequestCancellable.html":{"name":"RequestCancellable","abstract":"

    Type-erased cancellation token.

    "},"Protocols/Plugin.html":{"name":"Plugin","abstract":"

    Protocol that serves to provide plugin functionality to TRON.

    "},"Extensions/Request.html#/s:4TRON12tron_apiStubAA7APIStubCSgvp":{"name":"tron_apiStub","abstract":"

    Undocumented

    ","parent_name":"Request"},"Extensions/DownloadRequest.html#/s:4TRON28performResponseSerializationyXeXeF":{"name":"performResponseSerialization(queue:responseSerializer:completionHandler:)","abstract":"

    Undocumented

    ","parent_name":"DownloadRequest"},"Extensions/DownloadRequest.html#/s:4TRON13cancelRequestyXeXeF":{"name":"cancelRequest()","abstract":"

    Cancel DownloadRequest

    ","parent_name":"DownloadRequest"},"Extensions/DataRequest.html#/s:4TRON13cancelRequestyXeXeF":{"name":"cancelRequest()","abstract":"

    Cancel DataRequest

    ","parent_name":"DataRequest"},"Extensions/DataRequest.html":{"name":"DataRequest"},"Extensions/DownloadRequest.html":{"name":"DownloadRequest"},"Extensions/Request.html":{"name":"Request"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO14uploadFromFileyAC10Foundation3URLVcACmF":{"name":"uploadFromFile(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithRequest(_:fromFile:) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO10uploadDatayAC10Foundation0F0VcACmF":{"name":"uploadData(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithRequest(_:fromData:) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO12uploadStreamyACSo07NSInputF0CcACmF":{"name":"uploadStream(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithStreamedRequest(_) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO17multipartFormData33_E020FFCAC445A24427FDF8E87B038D43LLXeF":{"name":"multipartFormData(formData:memoryThreshold:fileManager:)","abstract":"

    Undocumented

    ","parent_name":"UploadRequestType"},"Enums/DownloadRequestType.html#/s:4TRON19DownloadRequestTypeO8download33_685444C9D89FA38BC220D4CC4412F9CELLXeF":{"name":"download(_:)","abstract":"

    Will create NSURLSessionDownloadTask using downloadTaskWithRequest(_) method

    ","parent_name":"DownloadRequestType"},"Enums/DownloadRequestType.html#/s:4TRON19DownloadRequestTypeO16downloadResuming33_685444C9D89FA38BC220D4CC4412F9CELLXeF":{"name":"downloadResuming(data:destination:)","abstract":"

    Will create NSURLSessionDownloadTask using downloadTaskWithResumeData(_) method

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

    Types of DownloadAPIRequest.

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

    Types of UploadAPIRequest

    "},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO22appendingPathComponentyA2EmF":{"name":"appendingPathComponent","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO17relativeToBaseURLyA2EmF":{"name":"relativeToBaseURL","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO6customyAE10Foundation3URLVSS_SStccAEmF":{"name":"custom(_:)","abstract":"

    Undocumented

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

    Different behaviors to build URLs from base URL string and path.

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC13baseURLStringSSvp":{"name":"baseURLString","abstract":"

    Base URL string

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC8behaviorAC8BehaviorOvp":{"name":"behavior","abstract":"

    Behavior to build URL

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC7baseURL8behaviorACSS_AC8BehaviorOtcfc":{"name":"init(baseURL:behavior:)","abstract":"

    Initialize URL builder with Base URL String

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC3url7forPath10Foundation3URLVSS_tF":{"name":"url(forPath:)","abstract":"

    Construct URL with given path

    ","parent_name":"URLBuilder"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC12modelDecoder10Foundation11JSONDecoderCvp":{"name":"modelDecoder","abstract":"

    Decoder to be used while parsing model.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC_12modelDecoderAc2AC_10Foundation11JSONDecoderCtcfc":{"name":"init(_:modelDecoder:)","abstract":"

    Creates CodableSerializer with tron instance to send requests, and decoder to be used while parsing response.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC7requestyAA10APIRequestCyxq_GSSSeRzAA17ErrorSerializableR_r0_lF":{"name":"request(_:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.Default.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_10fromFileAtAA16UploadAPIRequestCyxq_GSS_10Foundation3URLVtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:fromFileAt:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadFromFile.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_4dataAA16UploadAPIRequestCyxq_GSS_10Foundation4DataVtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:data:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadData.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_4fromAA16UploadAPIRequestCyxq_GSS_So13NSInputStreamCtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:from:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadStream.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC15uploadMultipartyXeXeF":{"name":"uploadMultipart(_:encodingMemoryThreshold:fileManager:formData:)","abstract":"

    Creates MultipartAPIRequest with specified relative path.

    ","parent_name":"CodableSerializer"},"Classes/CodableParser.html#/s:4TRON13CodableParserC12modelDecoder10Foundation11JSONDecoderCvp":{"name":"modelDecoder","abstract":"

    Decoder used for decoding model object

    ","parent_name":"CodableParser"},"Classes/CodableParser.html#/s:4TRON13CodableParserC12modelDecoderACyxG10Foundation11JSONDecoderC_tcfc":{"name":"init(modelDecoder:)","abstract":"

    Creates CodableParser with model and error decoders

    ","parent_name":"CodableParser"},"Classes/CodableParser.html#/s:4TRON13CodableParserC9serialize7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI4DataVSgs5Error_pSgtKF":{"name":"serialize(request:response:data:error:)","abstract":"

    Method used by response handlers that takes a request, response, data and error and returns a result.

    ","parent_name":"CodableParser"},"Classes/TRON.html#/s:4TRONAAC10urlBuilderAA10URLBuilderCvp":{"name":"urlBuilder","abstract":"

    URL builder to be used by default in all requests. Can be overridden for specific requests.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC15stubbingEnabledSbvp":{"name":"stubbingEnabled","abstract":"

    Global property, that defines whether stubbing is enabled. It is simply set on each APIRequest instance and can be reset.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Global plugins, that will receive events from all requests, created from current TRON instance.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC17parameterEncodingXevp":{"name":"parameterEncoding","abstract":"

    Default parameter encoding, that will be set on all APIRequests. Can be overrided by setting new value on APIRequest.parameterEncoding property.","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC19resultDeliveryQueueSo17OS_dispatch_queueCvp":{"name":"resultDeliveryQueue","abstract":"

    Queue, used to deliver result completion blocks. Defaults to dispatch_get_main_queue().

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7codableAA17CodableSerializerCvp":{"name":"codable","abstract":"

    CodableSerializer for current TRON instance.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7sessionXevp":{"name":"session","abstract":"

    Alamofire.Session instance used to send network requests

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAACyXeXecfc":{"name":"init(baseURL:buildingURL:session:plugins:)","abstract":"

    Initializes TRON with given base URL, Alamofire.Session instance, and array of global plugins.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7request_18responseSerializerAA10APIRequestCyxq_GSS_q0_tAA17ErrorSerializableR_r1_lF":{"name":"request(_:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.Default.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_10fromFileAt18responseSerializerAA16UploadAPIRequestCyxq_GSS_10Foundation3URLVq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:fromFileAt:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadFromFile.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_4data18responseSerializerAA16UploadAPIRequestCyxq_GSS_10Foundation4DataVq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:data:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadData.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_4from18responseSerializerAA16UploadAPIRequestCyxq_GSS_So13NSInputStreamCq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:from:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadStream.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC15uploadMultipartyXeXeF":{"name":"uploadMultipart(_:responseSerializer:encodingMemoryThreshold:fileManager:formData:)","abstract":"

    Creates MultipartAPIRequest with specified relative path.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC8downloadyXeXeF":{"name":"download(_:to:resumingFrom:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.DownloadResuming.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7codable12modelDecoderAA17CodableSerializerC10Foundation11JSONDecoderC_tF":{"name":"codable(modelDecoder:)","abstract":"

    Creates CodableSerializer with current TRON instance and specific modelDecoder.

    ","parent_name":"TRON"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC10logSuccessSbvp":{"name":"logSuccess","abstract":"

    Log successful requests

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC11logFailuresSbvp":{"name":"logFailures","abstract":"

    Log unsuccessful requests

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC20logCancelledRequestsSbvp":{"name":"logCancelledRequests","abstract":"

    Log failures produced when request is cancelled. This property only works, if logFailures property is set to true.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC10logSuccess0E8Failures0E17CancelledRequestsACSb_S2btcfc":{"name":"init(logSuccess:logFailures:logCancelledRequests:)","abstract":"

    Creates ‘NetworkLoggerPlugin’

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC28didSuccessfullyParseResponseyXeXeF":{"name":"didSuccessfullyParseResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Called, when response was successfully parsed. If logSuccess property has been turned on, prints cURL representation of request.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC15didReceiveErroryXeXeF":{"name":"didReceiveError(_:forResponse:request:formedFrom:)","abstract":"

    Called, when request received error. If logFailures has been turned on, prints cURL representation of request and helpful debugging information such as status code, HTTP body contents and error message. If logCancelledRequests property is turned to true, they are also printed.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC11applicationACSo13UIApplicationC_tcfc":{"name":"init(application:)","abstract":"

    Undocumented

    ","parent_name":"NetworkActivityPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC23didSendAlamofireRequestyXeXeF":{"name":"didSendAlamofireRequest(_:formedFrom:)","abstract":"

    Called when network request was sent, increases networkActivityCount by 1

    ","parent_name":"NetworkActivityPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC19willProcessResponseyXeXeF":{"name":"willProcessResponse(response:forRequest:formedFrom:)","abstract":"

    Called when response for request was received, decreases networkActivityCount by 1

    ","parent_name":"NetworkActivityPlugin"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC0B14ResponseParsera":{"name":"DownloadResponseParser","abstract":"

    Serialize download response into Result<Model>.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC0B11ErrorParsera":{"name":"DownloadErrorParser","abstract":"

    Serializes received failed response into APIError object

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC4type4path4tron18responseSerializerACyxq_GAA0B11RequestTypeO_SSA2ACqd__tclufc":{"name":"init(type:path:tron:responseSerializer:)","abstract":"

    Creates DownloadAPIRequest with specified type, path and configures it with to be used with tron.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC9publisher7Combine12AnyPublisherVyxq_GyF":{"name":"publisher()","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent.

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC4type4path4tron18responseSerializerACyxq_GAA0B11RequestTypeO_SSA2ACqd__tclufc":{"name":"init(type:path:tron:responseSerializer:)","abstract":"

    Creates UploadAPIRequest with specified type, path and configures it with to be used with tron.

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC9publisher7Combine12AnyPublisherVyxq_GyF":{"name":"publisher()","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC14ResponseParsera":{"name":"ResponseParser","abstract":"

    Serializes Data into Model

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11ErrorParsera":{"name":"ErrorParser","abstract":"

    Serializes received failed response into APIError object

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4pathSSvp":{"name":"path","abstract":"

    Relative path of current request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6methodXevp":{"name":"method","abstract":"

    HTTP method

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10parametersSDySSypGvp":{"name":"parameters","abstract":"

    Parameters of current request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC17parameterEncodingXevp":{"name":"parameterEncoding","abstract":"

    Defines how parameters are encoded.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7headersXevp":{"name":"headers","abstract":"

    Headers, that should be used for current request. Defaults to HTTPHeaders.default

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10urlBuilderAA10URLBuilderCvp":{"name":"urlBuilder","abstract":"

    URL builder for current request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7apiStubAA7APIStubCSgvp":{"name":"apiStub","abstract":"

    API stub to be used when stubbing this request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11interceptorXevp":{"name":"interceptor","abstract":"

    Request interceptor that allows to adapt and retry requests.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC15requestModifierXevp":{"name":"requestModifier","abstract":"

    Closure which provides a URLRequest for mutation.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC19resultDeliveryQueueSo17OS_dispatch_queueCvp":{"name":"resultDeliveryQueue","abstract":"

    Queue, used to deliver result completion blocks. Defaults to TRON.resultDeliveryQueue queue.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Array of plugins for current APIRequest.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4path4tronACyxq_GSS_A2ACtcfc":{"name":"init(path:tron:)","abstract":"

    Creates BaseRequest instance, initialized with several TRON properties.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6methodyXeXeF":{"name":"method(_:)","abstract":"

    Sets method variable to httpMethod and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4postACyxq_GXDyF":{"name":"post()","abstract":"

    Sets method variable to .post and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7connectACyxq_GXDyF":{"name":"connect()","abstract":"

    Sets method variable to .connect and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6deleteACyxq_GXDyF":{"name":"delete()","abstract":"

    Sets method variable to .delete and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC3getACyxq_GXDyF":{"name":"get()","abstract":"

    Sets method variable to .get and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4headACyxq_GXDyF":{"name":"head()","abstract":"

    Sets method variable to .head and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7optionsACyxq_GXDyF":{"name":"options()","abstract":"

    Sets method variable to .options and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC5patchACyxq_GXDyF":{"name":"patch()","abstract":"

    Sets method variable to .patch and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC3putACyxq_GXDyF":{"name":"put()","abstract":"

    Sets method variable to .put and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC5traceACyxq_GXDyF":{"name":"trace()","abstract":"

    Sets method variable to .trace and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC17parameterEncodingyXeXeF":{"name":"parameterEncoding(_:)","abstract":"

    Sets parameterEncoding variable to encoding and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7headersyXeXeF":{"name":"headers(_:)","abstract":"

    Sets headers variable to headers and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11usingPluginyACyxq_GXDAA0E0_pF":{"name":"usingPlugin(_:)","abstract":"

    Appends plugin to plugins variable and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC8buildURLyACyxq_GXDAA10URLBuilderC8BehaviorOF":{"name":"buildURL(_:)","abstract":"

    Replaces urlBuilder with URLBuilder with the same baseURL string and behavior.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC9interceptyXeXeF":{"name":"intercept(using:)","abstract":"

    Sets per-request Interceptor for current request and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC06modifyC0yXeXeF":{"name":"modifyRequest(_:)","abstract":"

    Sets per-request modifier to configure URLRequest, that will be created.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC9configureyACyxq_GXDyAEXEF":{"name":"configure(_:)","abstract":"

    Configures current given request by executing closure and returning.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10parameters_7rootKeyACyxq_GXDSDySSypG_SSSgtF":{"name":"parameters(_:rootKey:)","abstract":"

    Sets parameters into parameters variable on request. If rootKey is non-nil, parameters are wrapped in external dictionary and set into parameters using rootKey as a single key.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC18optionalParameters_12setNilToNull7rootKeyACyxq_GXDSDySSypSgG_SbSSSgtF":{"name":"optionalParameters(_:setNilToNull:rootKey:)","abstract":"

    Sets parameters into parameters variable on request. If rootKey is non-nil, parameters are wrapped in external dictionary and set into parameters using rootKey as a single key.","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4stub4with5delay7enabledACyxq_GXDAA7APIStubC_SdSbtF":{"name":"stub(with:delay:enabled:)","abstract":"

    Sets stub into apiStub property, delay into apiStub.stubDelay property. Also enabled is set to apiStub.isEnabled property.

    ","parent_name":"BaseRequest"},"Classes/APIStub.html#/s:4TRON7APIStubC7request10Foundation10URLRequestVSgvp":{"name":"request","abstract":"

    URLRequest object to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC8responseSo17NSHTTPURLResponseCSgvp":{"name":"response","abstract":"

    HTTPURLResponse to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC4data10Foundation4DataVSgvp":{"name":"data","abstract":"

    Data to use when request is being stubbed. This property is ignored for DownloadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC5errors5Error_pSgvp":{"name":"error","abstract":"

    Error to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7fileURL10Foundation0D0VSgvp":{"name":"fileURL","abstract":"

    File URL to use when stubbing DownloadAPIRequest. This property is ignored for APIRequest and UploadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC9stubDelaySdvp":{"name":"stubDelay","abstract":"

    Delay before stub is executed

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC9isEnabledSbvp":{"name":"isEnabled","abstract":"

    When this property is set to true, stub will be activated. Defaults to false.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7request8response4data5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs5Error_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Creates APIStub instance for APIRequest and UploadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7request8response7fileURL5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0F0VSgs5Error_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Creates APIStub instance for DownloadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIRequest.html#/s:4TRON10APIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent. Defaults to { $0.validate() }

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC4path4tron18responseSerializerACyxq_GSS_A2ACqd__tclufc":{"name":"init(path:tron:responseSerializer:)","abstract":"

    Creates APIRequest, filling responseParser and errorParser properties

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC9publisher7Combine12AnyPublisherVyxq_GyF":{"name":"publisher()","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIError.html#/s:4TRON8APIErrorC7request10Foundation10URLRequestVSgvp":{"name":"request","abstract":"

    URLRequest that was unsuccessful

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC8responseSo17NSHTTPURLResponseCSgvp":{"name":"response","abstract":"

    Response received from web service

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC4data10Foundation4DataVSgvp":{"name":"data","abstract":"

    Data, contained in response. Nil, if this error is coming from a download request.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7fileURL10Foundation0D0VSgvp":{"name":"fileURL","abstract":"

    Downloaded fileURL. Nil, if used with upload or data requests.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC5errors5Error_pSgvp":{"name":"error","abstract":"

    Error instance, created by Foundation Loading System or Alamofire.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7request8response4data5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs5Error_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Undocumented

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7request8response7fileURL5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0F0VSgs5Error_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Undocumented

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC16errorDescriptionSSSgvp":{"name":"errorDescription","abstract":"

    Prints localized description of error inside

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC11isCancelledSbvp":{"name":"isCancelled","abstract":"

    Whether the request, that led to this error, was cancelled by the sender

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

    APIError is used as a generic wrapper for all kinds of API errors.

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

    APIRequest encapsulates request creation logic, stubbing options, and response/error parsing.

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

    APIStub instance that is used to represent stubbed response. Any properties of this class is presented to serialization classes as if they would be received by URL loading system.

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

    Base class, that contains common functionality, extracted from APIRequest and MultipartAPIRequest.

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

    UploadAPIRequest encapsulates upload request creation logic, stubbing options, and response/error parsing.

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

    DownloadAPIRequest encapsulates download request creation logic, stubbing options, and response/error parsing.

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

    Undocumented

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

    Plugin, that can be used to log network success and failure responses.

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

    TRON is a root object, that serves as a provider for single API endpoint. It is used to create and configure instances of APIRequest and MultipartAPIRequest.

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

    CodableParser is a wrapper around modelDecoder and errorDecoder JSONDecoders to be used when decoding JSON response.

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

    Serializer for objects, that conform to Decodable protocol.

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

    URLBuilder constructs resulting URL by calling URLByAppendingPathComponent method on baseURL.

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

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions are available globally.

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

    The following protocols are available globally.

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

    The following structures are available globally.

    "}} \ No newline at end of file +{"Structs/FileURLPassthroughResponseSerializer.html#/s:4TRON36FileURLPassthroughResponseSerializerV15MissingURLErrorV":{"name":"MissingURLError","abstract":"

    Error returned when received fileURL is nil

    ","parent_name":"FileURLPassthroughResponseSerializer"},"Structs/FileURLPassthroughResponseSerializer.html#/s:4TRON36FileURLPassthroughResponseSerializerV17serializeDownload7request8response7fileURL5error10Foundation0K0VAI10URLRequestVSg_So17NSHTTPURLResponseCSgAKSgs5Error_pSgtKF":{"name":"serializeDownload(request:response:fileURL:error:)","abstract":"

    Extracts file URL from received response

    ","parent_name":"FileURLPassthroughResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV7closureyx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtKcvp":{"name":"closure","abstract":"

    Serialization closure to execute

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV7closureACyxGx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAF3URLVSgs5Error_pSgtKc_tcfc":{"name":"init(closure:)","abstract":"

    Creates response serializer from passed serialization closure

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDownloadResponseSerializer.html#/s:4TRON30TRONDownloadResponseSerializerV17serializeDownload7request8response7fileURL5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI0J0VSgs5Error_pSgtKF":{"name":"serializeDownload(request:response:fileURL:error:)","abstract":"

    Serializes received response into model object

    ","parent_name":"TRONDownloadResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV7closureyx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"closure","abstract":"

    Serialization closure to execute

    ","parent_name":"TRONDataResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV7closureACyxGx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAF4DataVSgs5Error_pSgtKc_tcfc":{"name":"init(closure:)","abstract":"

    Creates response serializer from passed serialization closure

    ","parent_name":"TRONDataResponseSerializer"},"Structs/TRONDataResponseSerializer.html#/s:4TRON26TRONDataResponseSerializerV9serialize7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI4DataVSgs5Error_pSgtKF":{"name":"serialize(request:response:data:error:)","abstract":"

    Serializes received response into model object

    ","parent_name":"TRONDataResponseSerializer"},"Structs/DownloadError.html#/s:4TRON13DownloadErrorV8responseXevp":{"name":"response","abstract":"

    Reported DownloadResponse

    ","parent_name":"DownloadError"},"Structs/DownloadError.html#/s:4TRON13DownloadErrorVyXeXecfc":{"name":"init(_:)","abstract":"

    Creates DownloadError for DownloadAPIRequest.

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

    Error that is created in case DownloadAPIRequest errors out, but Alamofire and URL loading system report error as nil."},"Structs/TRONDataResponseSerializer.html":{"name":"TRONDataResponseSerializer","abstract":"

    Response serializer, that wraps serialization closure to implement Alamofire.DataResponseSerializerProtocol. Is used for APIRequest and UploadAPIRequest.

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

    Response serializer, that wraps serialization closure to implement Alamofire.DownloadResponseSerializerProtocol. Is used for DownloadAPIRequest.

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

    Response serializer, that returns file URL upon successful download. Is used for DownloadAPIRequest.

    "},"Protocols/Plugin.html#/s:4TRON6PluginP15willSendRequestyyAA04BaseE0Cyqd__qd_0_Gr0_lF":{"name":"willSendRequest(_:)","abstract":"

    Notifies that request is about to be converted to Alamofire.Request

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP24willSendAlamofireRequestyXeXeF":{"name":"willSendAlamofireRequest(_:formedFrom:)","abstract":"

    Notifies that request formed from tronRequest, is about to be sent.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP23didSendAlamofireRequestyXeXeF":{"name":"didSendAlamofireRequest(_:formedFrom:)","abstract":"

    Notifies that request, formed from tronRequest, was sent.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP19willProcessResponseyXeXeF":{"name":"willProcessResponse(response:forRequest:formedFrom:)","abstract":"

    Notifies that response was received for request, formed from tronRequest.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP28didSuccessfullyParseResponseyXeXeF":{"name":"didSuccessfullyParseResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Notifies that response for request, formed from tronRequest, was successfully parsed into result.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP15didReceiveErroryXeXeF":{"name":"didReceiveError(_:forResponse:request:formedFrom:)","abstract":"

    Notifies that request processed response and created APIError<ErrorModel> instance.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP23didReceiveDownloadErroryXeXeF":{"name":"didReceiveDownloadError(_:forResponse:request:formedFrom:)","abstract":"

    Notifies that request processed response and created APIError<ErrorModel> instance.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP22didReceiveDataResponseyXeXeF":{"name":"didReceiveDataResponse(_:forRequest:formedFrom:)","abstract":"

    Notifies about data response that was received for request, formed from tronRequest. This method is called after parsing has completed.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP26didReceiveDownloadResponseyXeXeF":{"name":"didReceiveDownloadResponse(_:forRequest:formedFrom:)","abstract":"

    Notifies about download response that was received for request, formed from tronRequest. This method is called after parsing has completed.

    ","parent_name":"Plugin"},"Protocols/Plugin.html#/s:4TRON6PluginP36didSuccessfullyParseDownloadResponseyXeXeF":{"name":"didSuccessfullyParseDownloadResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Notifies that response for request, formed from tronRequest, was successfully parsed into result.

    ","parent_name":"Plugin"},"Protocols/RequestCancellable.html#/s:4TRON18RequestCancellableP06cancelB0yyF":{"name":"cancelRequest()","abstract":"

    Cancel current request

    ","parent_name":"RequestCancellable"},"Protocols/TronDelegate.html#/s:4TRON12TronDelegateP7sessionXevp":{"name":"session","abstract":"

    Alamofire.Session used to send requests

    ","parent_name":"TronDelegate"},"Protocols/TronDelegate.html#/s:4TRON12TronDelegateP7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Global array of plugins on TRON instance

    ","parent_name":"TronDelegate"},"Protocols/DownloadErrorSerializable.html#/s:4TRON25DownloadErrorSerializableP7request8response7fileURL5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0H0VSgs0C0_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Undocumented

    ","parent_name":"DownloadErrorSerializable"},"Protocols/ErrorSerializable.html#/s:4TRON17ErrorSerializableP7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs0B0_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Undocumented

    ","parent_name":"ErrorSerializable"},"Protocols/ErrorSerializable.html":{"name":"ErrorSerializable","abstract":"

    Protocol used to serialize errors received from sending APIRequest or UploadAPIRequest.

    "},"Protocols/DownloadErrorSerializable.html":{"name":"DownloadErrorSerializable","abstract":"

    Protocol used to serialize errors received from sending DownloadAPIRequest.

    "},"Protocols/TronDelegate.html":{"name":"TronDelegate","abstract":"

    Protocol used to allow APIRequest to communicate with TRON instance.

    "},"Protocols/RequestCancellable.html":{"name":"RequestCancellable","abstract":"

    Type-erased cancellation token.

    "},"Protocols/Plugin.html":{"name":"Plugin","abstract":"

    Protocol that serves to provide plugin functionality to TRON.

    "},"Extensions/Request.html#/s:4TRON12tron_apiStubAA7APIStubCSgvp":{"name":"tron_apiStub","abstract":"

    Undocumented

    ","parent_name":"Request"},"Extensions/DownloadRequest.html#/s:4TRON28performResponseSerializationyXeXeF":{"name":"performResponseSerialization(queue:responseSerializer:completionHandler:)","abstract":"

    Undocumented

    ","parent_name":"DownloadRequest"},"Extensions/DownloadRequest.html#/s:4TRON13cancelRequestyXeXeF":{"name":"cancelRequest()","abstract":"

    Cancel DownloadRequest

    ","parent_name":"DownloadRequest"},"Extensions/DataRequest.html#/s:4TRON13cancelRequestyXeXeF":{"name":"cancelRequest()","abstract":"

    Cancel DataRequest

    ","parent_name":"DataRequest"},"Extensions/DataRequest.html":{"name":"DataRequest"},"Extensions/DownloadRequest.html":{"name":"DownloadRequest"},"Extensions/Request.html":{"name":"Request"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO14uploadFromFileyAC10Foundation3URLVcACmF":{"name":"uploadFromFile(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithRequest(_:fromFile:) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO10uploadDatayAC10Foundation0F0VcACmF":{"name":"uploadData(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithRequest(_:fromData:) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO12uploadStreamyACSo07NSInputF0CcACmF":{"name":"uploadStream(_:)","abstract":"

    Will create NSURLSessionUploadTask using uploadTaskWithStreamedRequest(_) method

    ","parent_name":"UploadRequestType"},"Enums/UploadRequestType.html#/s:4TRON17UploadRequestTypeO17multipartFormData33_E020FFCAC445A24427FDF8E87B038D43LLXeF":{"name":"multipartFormData(formData:memoryThreshold:fileManager:)","abstract":"

    Undocumented

    ","parent_name":"UploadRequestType"},"Enums/DownloadRequestType.html#/s:4TRON19DownloadRequestTypeO8download33_685444C9D89FA38BC220D4CC4412F9CELLXeF":{"name":"download(_:)","abstract":"

    Will create NSURLSessionDownloadTask using downloadTaskWithRequest(_) method

    ","parent_name":"DownloadRequestType"},"Enums/DownloadRequestType.html#/s:4TRON19DownloadRequestTypeO16downloadResuming33_685444C9D89FA38BC220D4CC4412F9CELLXeF":{"name":"downloadResuming(data:destination:)","abstract":"

    Will create NSURLSessionDownloadTask using downloadTaskWithResumeData(_) method

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

    Types of DownloadAPIRequest.

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

    Types of UploadAPIRequest

    "},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent.

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC4type4path4tron18responseSerializerACyxq_GAA0B11RequestTypeO_SSA2ACqd__tclufc":{"name":"init(type:path:tron:responseSerializer:)","abstract":"

    Creates UploadAPIRequest with specified type, path and configures it with to be used with tron.

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/UploadAPIRequest.html#/s:4TRON16UploadAPIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"UploadAPIRequest"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO22appendingPathComponentyA2EmF":{"name":"appendingPathComponent","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO17relativeToBaseURLyA2EmF":{"name":"relativeToBaseURL","abstract":"

    Undocumented

    ","parent_name":"Behavior"},"Classes/URLBuilder/Behavior.html#/s:4TRON10URLBuilderC8BehaviorO6customyAE10Foundation3URLVSS_SStccAEmF":{"name":"custom(_:)","abstract":"

    Undocumented

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

    Different behaviors to build URLs from base URL string and path.

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC13baseURLStringSSvp":{"name":"baseURLString","abstract":"

    Base URL string

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC8behaviorAC8BehaviorOvp":{"name":"behavior","abstract":"

    Behavior to build URL

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC7baseURL8behaviorACSS_AC8BehaviorOtcfc":{"name":"init(baseURL:behavior:)","abstract":"

    Initialize URL builder with Base URL String

    ","parent_name":"URLBuilder"},"Classes/URLBuilder.html#/s:4TRON10URLBuilderC3url7forPath10Foundation3URLVSS_tF":{"name":"url(forPath:)","abstract":"

    Construct URL with given path

    ","parent_name":"URLBuilder"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC12modelDecoder10Foundation11JSONDecoderCvp":{"name":"modelDecoder","abstract":"

    Decoder to be used while parsing model.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC_12modelDecoderAc2AC_10Foundation11JSONDecoderCtcfc":{"name":"init(_:modelDecoder:)","abstract":"

    Creates CodableSerializer with tron instance to send requests, and decoder to be used while parsing response.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC7requestyAA10APIRequestCyxq_GSSSeRzAA17ErrorSerializableR_r0_lF":{"name":"request(_:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.Default.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_10fromFileAtAA16UploadAPIRequestCyxq_GSS_10Foundation3URLVtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:fromFileAt:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadFromFile.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_4dataAA16UploadAPIRequestCyxq_GSS_10Foundation4DataVtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:data:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadData.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC6upload_4fromAA16UploadAPIRequestCyxq_GSS_So13NSInputStreamCtSeRzAA17ErrorSerializableR_r0_lF":{"name":"upload(_:from:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadStream.

    ","parent_name":"CodableSerializer"},"Classes/CodableSerializer.html#/s:4TRON17CodableSerializerC15uploadMultipartyXeXeF":{"name":"uploadMultipart(_:encodingMemoryThreshold:fileManager:formData:)","abstract":"

    Creates MultipartAPIRequest with specified relative path.

    ","parent_name":"CodableSerializer"},"Classes/CodableParser.html#/s:4TRON13CodableParserC12modelDecoder10Foundation11JSONDecoderCvp":{"name":"modelDecoder","abstract":"

    Decoder used for decoding model object

    ","parent_name":"CodableParser"},"Classes/CodableParser.html#/s:4TRON13CodableParserC12modelDecoderACyxG10Foundation11JSONDecoderC_tcfc":{"name":"init(modelDecoder:)","abstract":"

    Creates CodableParser with model and error decoders

    ","parent_name":"CodableParser"},"Classes/CodableParser.html#/s:4TRON13CodableParserC9serialize7request8response4data5errorx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAI4DataVSgs5Error_pSgtKF":{"name":"serialize(request:response:data:error:)","abstract":"

    Method used by response handlers that takes a request, response, data and error and returns a result.

    ","parent_name":"CodableParser"},"Classes/TRON.html#/s:4TRONAAC10urlBuilderAA10URLBuilderCvp":{"name":"urlBuilder","abstract":"

    URL builder to be used by default in all requests. Can be overridden for specific requests.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC15stubbingEnabledSbvp":{"name":"stubbingEnabled","abstract":"

    Global property, that defines whether stubbing is enabled. It is simply set on each APIRequest instance and can be reset.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Global plugins, that will receive events from all requests, created from current TRON instance.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC17parameterEncodingXevp":{"name":"parameterEncoding","abstract":"

    Default parameter encoding, that will be set on all APIRequests. Can be overrided by setting new value on APIRequest.parameterEncoding property.","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC19resultDeliveryQueueSo17OS_dispatch_queueCvp":{"name":"resultDeliveryQueue","abstract":"

    Queue, used to deliver result completion blocks. Defaults to dispatch_get_main_queue().

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7codableAA17CodableSerializerCvp":{"name":"codable","abstract":"

    CodableSerializer for current TRON instance.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7sessionXevp":{"name":"session","abstract":"

    Alamofire.Session instance used to send network requests

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAACyXeXecfc":{"name":"init(baseURL:buildingURL:session:plugins:)","abstract":"

    Initializes TRON with given base URL, Alamofire.Session instance, and array of global plugins.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7request_18responseSerializerAA10APIRequestCyxq_GSS_q0_tAA17ErrorSerializableR_r1_lF":{"name":"request(_:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.Default.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_10fromFileAt18responseSerializerAA16UploadAPIRequestCyxq_GSS_10Foundation3URLVq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:fromFileAt:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadFromFile.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_4data18responseSerializerAA16UploadAPIRequestCyxq_GSS_10Foundation4DataVq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:data:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadData.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC6upload_4from18responseSerializerAA16UploadAPIRequestCyxq_GSS_So13NSInputStreamCq0_tAA17ErrorSerializableR_r1_lF":{"name":"upload(_:from:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.UploadStream.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC15uploadMultipartyXeXeF":{"name":"uploadMultipart(_:responseSerializer:encodingMemoryThreshold:fileManager:formData:)","abstract":"

    Creates MultipartAPIRequest with specified relative path.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC8downloadyXeXeF":{"name":"download(_:to:resumingFrom:responseSerializer:)","abstract":"

    Creates APIRequest with specified relative path and type RequestType.DownloadResuming.

    ","parent_name":"TRON"},"Classes/TRON.html#/s:4TRONAAC7codable12modelDecoderAA17CodableSerializerC10Foundation11JSONDecoderC_tF":{"name":"codable(modelDecoder:)","abstract":"

    Creates CodableSerializer with current TRON instance and specific modelDecoder.

    ","parent_name":"TRON"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC10logSuccessSbvp":{"name":"logSuccess","abstract":"

    Log successful requests

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC11logFailuresSbvp":{"name":"logFailures","abstract":"

    Log unsuccessful requests

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC20logCancelledRequestsSbvp":{"name":"logCancelledRequests","abstract":"

    Log failures produced when request is cancelled. This property only works, if logFailures property is set to true.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC10logSuccess0E8Failures0E17CancelledRequestsACSb_S2btcfc":{"name":"init(logSuccess:logFailures:logCancelledRequests:)","abstract":"

    Creates ‘NetworkLoggerPlugin’

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC28didSuccessfullyParseResponseyXeXeF":{"name":"didSuccessfullyParseResponse(_:creating:forRequest:formedFrom:)","abstract":"

    Called, when response was successfully parsed. If logSuccess property has been turned on, prints cURL representation of request.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkLoggerPlugin.html#/s:4TRON19NetworkLoggerPluginC15didReceiveErroryXeXeF":{"name":"didReceiveError(_:forResponse:request:formedFrom:)","abstract":"

    Called, when request received error. If logFailures has been turned on, prints cURL representation of request and helpful debugging information such as status code, HTTP body contents and error message. If logCancelledRequests property is turned to true, they are also printed.

    ","parent_name":"NetworkLoggerPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC11applicationACSo13UIApplicationC_tcfc":{"name":"init(application:)","abstract":"

    Undocumented

    ","parent_name":"NetworkActivityPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC23didSendAlamofireRequestyXeXeF":{"name":"didSendAlamofireRequest(_:formedFrom:)","abstract":"

    Called when network request was sent, increases networkActivityCount by 1

    ","parent_name":"NetworkActivityPlugin"},"Classes/NetworkActivityPlugin.html#/s:4TRON21NetworkActivityPluginC19willProcessResponseyXeXeF":{"name":"willProcessResponse(response:forRequest:formedFrom:)","abstract":"

    Called when response for request was received, decreases networkActivityCount by 1

    ","parent_name":"NetworkActivityPlugin"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC0B14ResponseParsera":{"name":"DownloadResponseParser","abstract":"

    Serialize download response into Result<Model>.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC0B11ErrorParsera":{"name":"DownloadErrorParser","abstract":"

    Serializes received failed response into APIError object

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE3URLVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC4type4path4tron18responseSerializerACyxq_GAA0B11RequestTypeO_SSA2ACqd__tclufc":{"name":"init(type:path:tron:responseSerializer:)","abstract":"

    Creates DownloadAPIRequest with specified type, path and configures it with to be used with tron.

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/DownloadAPIRequest.html#/s:4TRON18DownloadAPIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"DownloadAPIRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC14ResponseParsera":{"name":"ResponseParser","abstract":"

    Serializes Data into Model

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11ErrorParsera":{"name":"ErrorParser","abstract":"

    Serializes received failed response into APIError object

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4pathSSvp":{"name":"path","abstract":"

    Relative path of current request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6methodXevp":{"name":"method","abstract":"

    HTTP method

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10parametersSDySSypGvp":{"name":"parameters","abstract":"

    Parameters of current request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC17parameterEncodingXevp":{"name":"parameterEncoding","abstract":"

    Defines how parameters are encoded.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7headersXevp":{"name":"headers","abstract":"

    Headers, that should be used for current request. Defaults to HTTPHeaders.default

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10urlBuilderAA10URLBuilderCvp":{"name":"urlBuilder","abstract":"

    URL builder for current request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7apiStubAA7APIStubCSgvp":{"name":"apiStub","abstract":"

    API stub to be used when stubbing this request

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11interceptorXevp":{"name":"interceptor","abstract":"

    Request interceptor that allows to adapt and retry requests.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC15requestModifierXevp":{"name":"requestModifier","abstract":"

    Closure which provides a URLRequest for mutation.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC19resultDeliveryQueueSo17OS_dispatch_queueCvp":{"name":"resultDeliveryQueue","abstract":"

    Queue, used to deliver result completion blocks. Defaults to TRON.resultDeliveryQueue queue.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7pluginsSayAA6Plugin_pGvp":{"name":"plugins","abstract":"

    Array of plugins for current APIRequest.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4path4tronACyxq_GSS_A2ACtcfc":{"name":"init(path:tron:)","abstract":"

    Creates BaseRequest instance, initialized with several TRON properties.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6methodyXeXeF":{"name":"method(_:)","abstract":"

    Sets method variable to httpMethod and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4postACyxq_GXDyF":{"name":"post()","abstract":"

    Sets method variable to .post and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7connectACyxq_GXDyF":{"name":"connect()","abstract":"

    Sets method variable to .connect and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC6deleteACyxq_GXDyF":{"name":"delete()","abstract":"

    Sets method variable to .delete and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC3getACyxq_GXDyF":{"name":"get()","abstract":"

    Sets method variable to .get and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4headACyxq_GXDyF":{"name":"head()","abstract":"

    Sets method variable to .head and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7optionsACyxq_GXDyF":{"name":"options()","abstract":"

    Sets method variable to .options and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC5patchACyxq_GXDyF":{"name":"patch()","abstract":"

    Sets method variable to .patch and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC3putACyxq_GXDyF":{"name":"put()","abstract":"

    Sets method variable to .put and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC5traceACyxq_GXDyF":{"name":"trace()","abstract":"

    Sets method variable to .trace and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC17parameterEncodingyXeXeF":{"name":"parameterEncoding(_:)","abstract":"

    Sets parameterEncoding variable to encoding and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC7headersyXeXeF":{"name":"headers(_:)","abstract":"

    Sets headers variable to headers and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC11usingPluginyACyxq_GXDAA0E0_pF":{"name":"usingPlugin(_:)","abstract":"

    Appends plugin to plugins variable and returns configured request.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC8buildURLyACyxq_GXDAA10URLBuilderC8BehaviorOF":{"name":"buildURL(_:)","abstract":"

    Replaces urlBuilder with URLBuilder with the same baseURL string and behavior.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC9interceptyXeXeF":{"name":"intercept(using:)","abstract":"

    Sets per-request Interceptor for current request and returns.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC06modifyC0yXeXeF":{"name":"modifyRequest(_:)","abstract":"

    Sets per-request modifier to configure URLRequest, that will be created.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC9configureyACyxq_GXDyAEXEF":{"name":"configure(_:)","abstract":"

    Configures current given request by executing closure and returning.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC10parameters_7rootKeyACyxq_GXDSDySSypG_SSSgtF":{"name":"parameters(_:rootKey:)","abstract":"

    Sets parameters into parameters variable on request. If rootKey is non-nil, parameters are wrapped in external dictionary and set into parameters using rootKey as a single key.

    ","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC18optionalParameters_12setNilToNull7rootKeyACyxq_GXDSDySSypSgG_SbSSSgtF":{"name":"optionalParameters(_:setNilToNull:rootKey:)","abstract":"

    Sets parameters into parameters variable on request. If rootKey is non-nil, parameters are wrapped in external dictionary and set into parameters using rootKey as a single key.","parent_name":"BaseRequest"},"Classes/BaseRequest.html#/s:4TRON11BaseRequestC4stub4with5delay7enabledACyxq_GXDAA7APIStubC_SdSbtF":{"name":"stub(with:delay:enabled:)","abstract":"

    Sets stub into apiStub property, delay into apiStub.stubDelay property. Also enabled is set to apiStub.isEnabled property.

    ","parent_name":"BaseRequest"},"Classes/APIStub.html#/s:4TRON7APIStubC7request10Foundation10URLRequestVSgvp":{"name":"request","abstract":"

    URLRequest object to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC8responseSo17NSHTTPURLResponseCSgvp":{"name":"response","abstract":"

    HTTPURLResponse to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC4data10Foundation4DataVSgvp":{"name":"data","abstract":"

    Data to use when request is being stubbed. This property is ignored for DownloadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC5errors5Error_pSgvp":{"name":"error","abstract":"

    Error to use when request is being stubbed.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7fileURL10Foundation0D0VSgvp":{"name":"fileURL","abstract":"

    File URL to use when stubbing DownloadAPIRequest. This property is ignored for APIRequest and UploadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC9stubDelaySdvp":{"name":"stubDelay","abstract":"

    Delay before stub is executed

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC9isEnabledSbvp":{"name":"isEnabled","abstract":"

    When this property is set to true, stub will be activated. Defaults to false.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7request8response4data5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs5Error_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Creates APIStub instance for APIRequest and UploadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIStub.html#/s:4TRON7APIStubC7request8response7fileURL5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0F0VSgs5Error_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Creates APIStub instance for DownloadAPIRequest.

    ","parent_name":"APIStub"},"Classes/APIRequest.html#/s:4TRON10APIRequestC14responseParseryx10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtKcvp":{"name":"responseParser","abstract":"

    Serializes received response into Result

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC11errorParseryq_10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAE4DataVSgs5Error_pSgtcvp":{"name":"errorParser","abstract":"

    Serializes received error into APIError

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC17validationClosureXevp":{"name":"validationClosure","abstract":"

    Closure that is applied to request before it is sent. Defaults to { $0.validate() }

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC10validationyXeXeF":{"name":"validation(_:)","abstract":"

    Sets validationClosure to validation parameter and returns configured request

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC4path4tron18responseSerializerACyxq_GSS_A2ACqd__tclufc":{"name":"init(path:tron:responseSerializer:)","abstract":"

    Creates APIRequest, filling responseParser and errorParser properties

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC7performyXeXeF":{"name":"perform(withSuccess:failure:)","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIRequest.html#/s:4TRON10APIRequestC25performCollectingTimelineyXeXeF":{"name":"performCollectingTimeline(withCompletion:)","abstract":"

    Undocumented

    ","parent_name":"APIRequest"},"Classes/APIError.html#/s:4TRON8APIErrorC7request10Foundation10URLRequestVSgvp":{"name":"request","abstract":"

    URLRequest that was unsuccessful

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC8responseSo17NSHTTPURLResponseCSgvp":{"name":"response","abstract":"

    Response received from web service

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC4data10Foundation4DataVSgvp":{"name":"data","abstract":"

    Data, contained in response. Nil, if this error is coming from a download request.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7fileURL10Foundation0D0VSgvp":{"name":"fileURL","abstract":"

    Downloaded fileURL. Nil, if used with upload or data requests.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC5errors5Error_pSgvp":{"name":"error","abstract":"

    Error instance, created by Foundation Loading System or Alamofire.

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7request8response4data5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH4DataVSgs5Error_pSgtcfc":{"name":"init(request:response:data:error:)","abstract":"

    Undocumented

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC7request8response7fileURL5errorAC10Foundation10URLRequestVSg_So17NSHTTPURLResponseCSgAH0F0VSgs5Error_pSgtcfc":{"name":"init(request:response:fileURL:error:)","abstract":"

    Undocumented

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC16errorDescriptionSSSgvp":{"name":"errorDescription","abstract":"

    Prints localized description of error inside

    ","parent_name":"APIError"},"Classes/APIError.html#/s:4TRON8APIErrorC11isCancelledSbvp":{"name":"isCancelled","abstract":"

    Whether the request, that led to this error, was cancelled by the sender

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

    APIError is used as a generic wrapper for all kinds of API errors.

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

    APIRequest encapsulates request creation logic, stubbing options, and response/error parsing.

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

    APIStub instance that is used to represent stubbed response. Any properties of this class is presented to serialization classes as if they would be received by URL loading system.

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

    Base class, that contains common functionality, extracted from APIRequest and MultipartAPIRequest.

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

    DownloadAPIRequest encapsulates download request creation logic, stubbing options, and response/error parsing.

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

    Undocumented

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

    Plugin, that can be used to log network success and failure responses.

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

    TRON is a root object, that serves as a provider for single API endpoint. It is used to create and configure instances of APIRequest and MultipartAPIRequest.

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

    CodableParser is a wrapper around modelDecoder and errorDecoder JSONDecoders to be used when decoding JSON response.

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

    Serializer for objects, that conform to Decodable protocol.

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

    URLBuilder constructs resulting URL by calling URLByAppendingPathComponent method on baseURL.

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

    UploadAPIRequest encapsulates upload request creation logic, stubbing options, and response/error parsing.

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

    The following classes are available globally.

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

    The following enumerations are available globally.

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

    The following extensions are available globally.

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

    The following protocols are available globally.

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

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index d554595e..feceabd9 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -63,27 +63,6 @@ "symbol_kind": "source.lang.swift.decl.var.instance", "warning": "undocumented" }, - { - "file": "/Users/Denys/Projects/TRON/Source/TRON/Combine.swift", - "line": 75, - "symbol": "APIRequest.publisher()", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/Denys/Projects/TRON/Source/TRON/Combine.swift", - "line": 92, - "symbol": "UploadAPIRequest.publisher()", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/Denys/Projects/TRON/Source/TRON/Combine.swift", - "line": 109, - "symbol": "DownloadAPIRequest.publisher()", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, { "file": "/Users/Denys/Projects/TRON/Source/TRON/DownloadAPIRequest.swift", "line": 112,