public struct AudioPipelineStats: Equatable { public private(set) var microphoneFrames: Int public private(set) var microphoneBytes: Int public private(set) var systemFrames: Int public private(set) var systemBytes: Int public init(microphoneFrames: Int = 0, microphoneBytes: Int = 0, systemFrames: Int = 0, systemBytes: Int = 0) { self.microphoneFrames = microphoneFrames self.microphoneBytes = microphoneBytes self.systemFrames = systemFrames self.systemBytes = systemBytes } public mutating func recordFrame(source: AudioSource, byteCount: Int) { switch source { case .microphone: microphoneFrames += 1 microphoneBytes += byteCount case .system: systemFrames += 1 systemBytes += byteCount } } }