diff options
| author | Dustin Mierau <dustin@mierau.me> | 2024-01-01 11:35:49 -0800 |
|---|---|---|
| committer | Dustin Mierau <dustin@mierau.me> | 2024-01-01 11:35:49 -0800 |
| commit | 5d2aadbc834393b532d043d6298d6a23b80c2a5c (patch) | |
| tree | dcf139b67179d5bc3ad3ed69e949a1e7c1d18177 /Hotline/Models/TransferInfo.swift | |
| parent | a4cbaea0b12b7dd42133b4bd14f1371f1000fcc0 (diff) | |
File downloads now working in macOS client.1.0beta4
Diffstat (limited to 'Hotline/Models/TransferInfo.swift')
| -rw-r--r-- | Hotline/Models/TransferInfo.swift | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Hotline/Models/TransferInfo.swift b/Hotline/Models/TransferInfo.swift new file mode 100644 index 0000000..546efd3 --- /dev/null +++ b/Hotline/Models/TransferInfo.swift @@ -0,0 +1,33 @@ +import SwiftUI + +@Observable +class TransferInfo: Identifiable, Equatable, Hashable { + var id: UInt32 + + var title: String + var size: UInt + var progress: Double = 0.0 + var timeRemaining: TimeInterval = 0.0 + var completed: Bool = false + var failed: Bool = false + + // For file based transfers (i.e. not previews) + var fileURL: URL? = nil + + var downloadCallback: ((TransferInfo, URL) -> Void)? = nil + var previewCallback: ((TransferInfo, Data) -> Void)? = nil + + init(id: UInt32, title: String, size: UInt) { + self.id = id + self.title = title + self.size = size + } + + static func == (lhs: TransferInfo, rhs: TransferInfo) -> Bool { + return lhs.id == rhs.id + } + + func hash(into hasher: inout Hasher) { + hasher.combine(self.id) + } +} |