Skip to content
Snippets Groups Projects
Select Git revision
  • 6c43e710b11dffe1022fcc2aa7f0cea58ee0f368
  • main default protected
  • development
  • integration
  • v1.1.5
  • v1.1.4
  • v1.1.3
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v1.0.0
11 results

SearchUD.swift

Blame
  • SearchUD.swift 1.13 KiB
    import Bindings
    import XCTestDynamicOverlay
    
    public struct SearchUD {
      public var run: (Int, Data, [Fact], Data, UdSearchCallback) throws -> SingleUseSendReport
    
      public func callAsFunction(
        e2eId: Int,
        udContact: Data,
        facts: [Fact],
        singleRequestParamsJSON: Data = GetSingleUseParams.liveDefault(),
        callback: UdSearchCallback
      ) throws -> SingleUseSendReport {
        try run(e2eId, udContact, facts, singleRequestParamsJSON, callback)
      }
    }
    
    extension SearchUD {
      public static let live = SearchUD {
        e2eId, udContact, facts, singleRequestParamsJSON, callback in
    
        var error: NSError?
        let reportData = BindingsSearchUD(
          e2eId,
          udContact,
          callback.makeBindingsUdSearchCallback(),
          try facts.encode(),
          singleRequestParamsJSON,
          &error
        )
        if let error = error {
          throw error
        }
        guard let reportData = reportData else {
          fatalError("BindingsSearchUD returned `nil` without providing error")
        }
        return try SingleUseSendReport.decode(reportData)
      }
    }
    
    extension SearchUD {
      public static let unimplemented = SearchUD(
        run: XCTUnimplemented("\(Self.self)")
      )
    }