51 lines
1.4 KiB
Swift
51 lines
1.4 KiB
Swift
import Dependencies
|
|
import DependenciesMacros
|
|
import ManualDCore
|
|
|
|
@DependencyClient
|
|
public struct ManualDClient: Sendable {
|
|
public var frictionRate: @Sendable (FrictionRateRequest) async throws -> FrictionRateResponse
|
|
}
|
|
|
|
extension ManualDClient: TestDependencyKey {
|
|
public static let testValue = Self()
|
|
}
|
|
|
|
extension DependencyValues {
|
|
public var manualD: ManualDClient {
|
|
get { self[ManualDClient.self] }
|
|
set { self[ManualDClient.self] = newValue }
|
|
}
|
|
}
|
|
|
|
// MARK: - Friction Rate
|
|
extension ManualDClient {
|
|
public struct FrictionRateRequest: Codable, Equatable, Sendable {
|
|
|
|
public let externalStaticPressure: Double
|
|
public let componentPressureLosses: ComponentPressureLosses
|
|
public let totalEffectiveLength: Int
|
|
|
|
public init(
|
|
externalStaticPressure: Double,
|
|
componentPressureLosses: ComponentPressureLosses,
|
|
totalEffectiveLength: Int
|
|
) {
|
|
self.externalStaticPressure = externalStaticPressure
|
|
self.componentPressureLosses = componentPressureLosses
|
|
self.totalEffectiveLength = totalEffectiveLength
|
|
}
|
|
}
|
|
|
|
public struct FrictionRateResponse: Codable, Equatable, Sendable {
|
|
|
|
public let availableStaticPressure: Double
|
|
public let frictionRate: Double
|
|
|
|
public init(availableStaticPressure: Double, frictionRate: Double) {
|
|
self.availableStaticPressure = availableStaticPressure
|
|
self.frictionRate = frictionRate
|
|
}
|
|
}
|
|
}
|