 
 public enum StructTarget: TargetType {
     case Struct(TargetType)
-
+    
     public init(_ target: TargetType) {
         self = StructTarget.Struct(target)
     }
-
+    
     public var path: String {
         return target.path
     }
-
+    
     public var baseURL: NSURL {
         return target.baseURL
     }
-
+    
     public var method: Moya.Method {
         return target.method
     }
-
+    
     public var parameters: [String: AnyObject]? {
         return target.parameters
     }
-
+    
     public var sampleData: NSData {
         return target.sampleData
     }
-
+    
     public var target: TargetType {
         switch self {
         case .Struct(let t): return t

                objc_sync_exit(self)
            }
        }

        
        let performNetworking = { (request: NSURLRequest) in
            if cancellableToken.isCancelled { return }
            
            switch stubBehavior {
            case .Never:

    /// Closure that defines the endpoints for the provider.
    public typealias EndpointClosure = Target -> Endpoint<Target>
    
    /// Closure that decides if and what request should be performed
    public typealias RequestResultClosure = Result<NSURLRequest, NSError> -> Void
    
    /// Closure that resolves an Endpoint into an RequestResult.
    public typealias RequestClosure = (Endpoint<Target>, RequestResultClosure) -> Void
    
    /// Closure that decides if/how a request should be stubbed.
    public typealias StubClosure = Target -> Moya.StubBehavior
