48 lines
1.3 KiB
Swift
48 lines
1.3 KiB
Swift
import Dependencies
|
|
import DependenciesMacros
|
|
import ManualDCore
|
|
|
|
@DependencyClient
|
|
public struct PdfClient: Sendable {
|
|
public var markdown: @Sendable (Request) async throws -> String
|
|
}
|
|
|
|
extension PdfClient: TestDependencyKey {
|
|
public static let testValue = Self()
|
|
}
|
|
|
|
extension PdfClient {
|
|
|
|
public struct Request: Codable, Equatable, Sendable {
|
|
|
|
public let project: Project
|
|
public let componentLosses: [ComponentPressureLoss]
|
|
public let ductSizes: DuctSizes
|
|
public let equipmentInfo: EquipmentInfo
|
|
public let maxSupplyTEL: EffectiveLength
|
|
public let maxReturnTEL: EffectiveLength
|
|
public let designFrictionRate: FrictionRate
|
|
public let projectSHR: Double
|
|
|
|
public init(
|
|
project: Project,
|
|
componentLosses: [ComponentPressureLoss],
|
|
ductSizes: DuctSizes,
|
|
equipmentInfo: EquipmentInfo,
|
|
maxSupplyTEL: EffectiveLength,
|
|
maxReturnTEL: EffectiveLength,
|
|
designFrictionRate: FrictionRate,
|
|
projectSHR: Double
|
|
) {
|
|
self.project = project
|
|
self.componentLosses = componentLosses
|
|
self.ductSizes = ductSizes
|
|
self.equipmentInfo = equipmentInfo
|
|
self.maxSupplyTEL = maxSupplyTEL
|
|
self.maxReturnTEL = maxReturnTEL
|
|
self.designFrictionRate = designFrictionRate
|
|
self.projectSHR = projectSHR
|
|
}
|
|
}
|
|
}
|