 
     // MARK: - Loading Image Data
 
+    /// Loads the image data for the given request. The data doesn't get decoded
+    /// or processed in any other way.
     @discardableResult public func loadData(
         with request: ImageRequestConvertible,
         completion: @escaping (Result<(data: Data, response: URLResponse?), Error>) -> Void

        (self as SendEventProtocol)._send(event, task)
    }

    @available(*, deprecated, message: "Please use ImagePipelineDelegate")
    func _send(_ event: ImageTaskEvent, _ task: ImageTask) {
        observer?.pipeline(self, imageTask: task, didReceiveEvent: event)

        self.init(configuration: configuration, delegate: delegate)
    }

    /// Invalidates the pipeline and cancels all outstanding tasks. No new
    /// requests can be started.
    func invalidate() {
        queue.async {
            guard !self.isInvalidated else { return }
