30 lines
945 B
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 { }
|