---
title: DiagnosticResult
framework: metrickit
role: symbol
role_heading: Enumeration
path: metrickit/diagnosticresult
---

# DiagnosticResult

An enumeration that represents a single diagnostic event from a diagnostic report.

## Declaration

```swift
enum DiagnosticResult
```

## Mentioned in

Analyzing app performance with MetricKit Monitoring app performance with MetricKit

## Discussion

Discussion DiagnosticResult unifies all diagnostic event types into a single enum. Each associated value is a typed diagnostic struct that carries a CallStackTree and additional event-specific properties such as hang duration, total CPU time, or launch duration. Access the result through result after iterating over diagnosticReports. Switch over the result to handle each diagnostic type: for await report in manager.diagnosticReports {     switch report.result {     case .crash(let diagnostic):         handleCrash(diagnostic)     case .hang(let diagnostic):         handleHang(diagnostic)     case .cpuException(let diagnostic):         handleCPUException(diagnostic)     case .diskWriteException(let diagnostic):         handleDiskWriteException(diagnostic)     case .appLaunch(let diagnostic):         handleAppLaunchDiagnostic(diagnostic)     @unknown default:         break     } } This type replaces the crashDiagnostics, hangDiagnostics, cpuExceptionDiagnostics, diskWriteExceptionDiagnostics, and appLaunchDiagnostics properties of MXDiagnosticPayload.

## Topics

### Call stack

- [CallStackTree](metrickit/callstacktree.md)

### Diagnostic results

- [CrashDiagnostic](metrickit/crashdiagnostic.md)
- [HangDiagnostic](metrickit/hangdiagnostic.md)
- [CPUExceptionDiagnostic](metrickit/cpuexceptiondiagnostic.md)
- [DiskWriteExceptionDiagnostic](metrickit/diskwriteexceptiondiagnostic.md)
- [AppLaunchDiagnostic](metrickit/applaunchdiagnostic.md)
- [MemoryExceptionDiagnostic](metrickit/memoryexceptiondiagnostic.md)

### Enumeration Cases

- [DiagnosticResult.appLaunch(_:)](metrickit/diagnosticresult/applaunch(_:).md)
- [DiagnosticResult.cpuException(_:)](metrickit/diagnosticresult/cpuexception(_:).md)
- [DiagnosticResult.crash(_:)](metrickit/diagnosticresult/crash(_:).md)
- [DiagnosticResult.diskWriteException(_:)](metrickit/diagnosticresult/diskwriteexception(_:).md)
- [DiagnosticResult.hang(_:)](metrickit/diagnosticresult/hang(_:).md)
- [DiagnosticResult.memoryException(_:)](metrickit/diagnosticresult/memoryexception(_:).md)

## Relationships

### Conforms To

- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)

## See Also

### Result types

- [MetricResult](metrickit/metricresult.md)
- [MetricGroup](metrickit/metricgroup.md)
