         taskOfSessionDidComplete?(task, session, error)
     }
 }
+
+// MARK: URLSessionDataDelegate
 
 extension SessionDelegate: URLSessionDataDelegate {
     /// Tells the delegate that the data task received the initial reply (headers) from the server.

    }
}



    /// Closure for `urlSession(_:dataTask:willCacheResponse:)` function in protocol `URLSessionDataDelegate`.
    public var dataTaskOfSessionWillCacheResponse: ((URLSessionDataTask, URLSession, CachedURLResponse, @escaping (CachedURLResponse?) -> Void) -> Void)?

    /// Closure for `urlSession(_:downloadTask:didFinishDownloadingTo:)` function in protocol `URLSessionDownloadDelegate`.
    public var downloadTaskOfSessionDidFinishDownloading: ((URLSessionDownloadTask, URLSession, URL) -> Void)?
    // MARK: URLCredential
    ///
    public var credentialOfChallenge: ((URLSession, URLSessionTask?, URLAuthenticationChallenge) -> URLCredential?)?
}

// MARK: URLSessionDelegate
