RemoteDiagnostics.swift 982 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // LoopFollow
  2. // RemoteDiagnostics.swift
  3. import Foundation
  4. struct RemoteDiagnostics {
  5. enum Status: Equatable {
  6. case unknown
  7. case running
  8. case ok
  9. case failed(String)
  10. }
  11. var status: Status = .unknown
  12. var bundleMismatch: BundleMismatch?
  13. var bouncingTokens: BouncingTokens?
  14. var futureStartDate: FutureStartDate?
  15. var hasAnyWarning: Bool {
  16. bundleMismatch != nil || bouncingTokens != nil || futureStartDate != nil
  17. }
  18. struct BundleMismatch: Equatable {
  19. let expectedDevice: String
  20. let observedBundleId: String
  21. }
  22. struct BouncingTokens: Equatable {
  23. let distinctCount: Int
  24. let recordsScanned: Int
  25. let shifts: [TokenShift]
  26. }
  27. struct TokenShift: Equatable {
  28. let when: Date
  29. let fromToken: String
  30. let toToken: String
  31. let bundleIdentifier: String?
  32. }
  33. struct FutureStartDate: Equatable {
  34. let startDate: Date
  35. }
  36. }