mirror of
https://github.com/tsolomko/SWCompression.git
synced 2026-06-23 14:56:41 +00:00
Support unavailable data in SevenZipEntry (when no substreamInfo is found)
This commit is contained in:
+11
-5
@@ -23,17 +23,23 @@ public class SevenZipEntry: ContainerEntry {
|
||||
|
||||
public var entryAttributes: [FileAttributeKey: Any]
|
||||
|
||||
private let dataObject: Data
|
||||
public let dataIsAvailable: Bool
|
||||
|
||||
init(_ entryInfo: SevenZipEntryInfo, _ data: Data) {
|
||||
// TODO: Make data decoding here?
|
||||
private let dataObject: Data?
|
||||
|
||||
init(_ entryInfo: SevenZipEntryInfo, _ data: Data?) {
|
||||
self.info = entryInfo
|
||||
self.dataObject = data
|
||||
self.dataIsAvailable = data != nil
|
||||
self.entryAttributes = [:]
|
||||
}
|
||||
|
||||
public func data() -> Data {
|
||||
return dataObject
|
||||
public func data() throws -> Data {
|
||||
if let data = dataObject {
|
||||
return data
|
||||
} else {
|
||||
throw SevenZipError.dataIsUnavailable
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -38,4 +38,5 @@ public enum SevenZipError: Error {
|
||||
case noStreamFound
|
||||
case noPackInfoFound
|
||||
case streamOverread
|
||||
case dataIsUnavailable
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user