AutoCat/AutoCatCore/Services/LocationService/SwiftLocationProtocol.swift

30 lines
945 B
Swift

//
// 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 { }