aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Models/FileInfo.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Hotline/Models/FileInfo.swift')
-rw-r--r--Hotline/Models/FileInfo.swift31
1 files changed, 31 insertions, 0 deletions
diff --git a/Hotline/Models/FileInfo.swift b/Hotline/Models/FileInfo.swift
new file mode 100644
index 0000000..0e2c76d
--- /dev/null
+++ b/Hotline/Models/FileInfo.swift
@@ -0,0 +1,31 @@
+import SwiftUI
+
+@Observable class FileInfo: Identifiable {
+ let id: UUID = UUID()
+
+ let path: [String]
+ let name: String
+
+ let type: String
+ let creator: String
+ let fileSize: UInt
+
+ let isFolder: Bool
+ var children: [FileInfo]? = nil
+
+ init(hotlineFile: HotlineFile) {
+ self.path = hotlineFile.path
+ self.name = hotlineFile.name
+ self.type = hotlineFile.type
+ self.creator = hotlineFile.creator
+ self.fileSize = UInt(hotlineFile.fileSize)
+ self.isFolder = hotlineFile.isFolder
+ if self.isFolder {
+ self.children = []
+ }
+ }
+
+ static func == (lhs: FileInfo, rhs: FileInfo) -> Bool {
+ return lhs.id == rhs.id
+ }
+}