// // SwiftLocationProtocol.swift // AutoCatCore // // Created by Selim Mustafaev on 02.08.2024. // Copyright © 2024 Selim Mustafaev. All rights reserved. // import SwiftLocation import CoreLocation import Mockable @MainActor @Mockable public protocol SwiftLocationProtocol { var authorizationStatus: CLAuthorizationStatus { get } func requestPermission(_ permission: LocationPermission) async throws -> CLAuthorizationStatus func requestLocation(accuracy filters: AccuracyFilters?, timeout: TimeInterval?) async throws -> Tasks.ContinuousUpdateLocation.StreamEvent } extension Location: SwiftLocationProtocol { } // Force sendable conformance for SwiftLocation types extension Tasks.ContinuousUpdateLocation.StreamEvent: @retroactive @unchecked Sendable { } extension LocationPermission: @retroactive @unchecked Sendable { } extension AccuracyFilter: @retroactive @unchecked Sendable { }