From 9b33b81353204d85cc94adffb93eb9d5dcc0519d Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sat, 18 Feb 2017 22:16:37 +0300 Subject: [PATCH] Added a lot of docs strings. --- Sources/Deflate.swift | 12 +- Sources/ZipContainer.swift | 37 +++++- docs/Classes.html | 6 +- docs/Classes/BZip2.html | 2 +- docs/Classes/Deflate.html | 19 ++- docs/Classes/GzipArchive.html | 2 +- docs/Classes/LZMA.html | 2 +- docs/Classes/LZMA2.html | 2 +- docs/Classes/XZArchive.html | 2 +- docs/Classes/ZipContainer.html | 108 ++++++++++++++++-- docs/Classes/ZlibArchive.html | 2 +- docs/Enums.html | 2 +- docs/Enums/BZip2Error.html | 2 +- docs/Enums/DeflateError.html | 2 +- docs/Enums/GzipError.html | 2 +- docs/Enums/LZMA2Error.html | 2 +- docs/Enums/LZMAError.html | 2 +- docs/Enums/XZError.html | 2 +- docs/Enums/ZipError.html | 2 +- docs/Enums/ZlibError.html | 2 +- docs/Protocols.html | 2 +- docs/Protocols/Archive.html | 2 +- docs/Protocols/DecompressionAlgorithm.html | 2 +- docs/Structs.html | 14 ++- docs/Structs/GzipHeader.html | 2 +- .../Structs/GzipHeader/CompressionMethod.html | 2 +- docs/Structs/GzipHeader/FileSystemType.html | 2 +- docs/Structs/ZipEntry.html | 46 ++++++-- docs/Structs/ZlibHeader.html | 2 +- docs/Structs/ZlibHeader/CompressionLevel.html | 2 +- .../Structs/ZlibHeader/CompressionMethod.html | 2 +- docs/badge.svg | 2 +- .../Contents/Resources/Documents/Classes.html | 6 +- .../Resources/Documents/Classes/BZip2.html | 2 +- .../Resources/Documents/Classes/Deflate.html | 19 ++- .../Documents/Classes/GzipArchive.html | 2 +- .../Resources/Documents/Classes/LZMA.html | 2 +- .../Resources/Documents/Classes/LZMA2.html | 2 +- .../Documents/Classes/XZArchive.html | 2 +- .../Documents/Classes/ZipContainer.html | 108 ++++++++++++++++-- .../Documents/Classes/ZlibArchive.html | 2 +- .../Contents/Resources/Documents/Enums.html | 2 +- .../Resources/Documents/Enums/BZip2Error.html | 2 +- .../Documents/Enums/DeflateError.html | 2 +- .../Resources/Documents/Enums/GzipError.html | 2 +- .../Resources/Documents/Enums/LZMA2Error.html | 2 +- .../Resources/Documents/Enums/LZMAError.html | 2 +- .../Resources/Documents/Enums/XZError.html | 2 +- .../Resources/Documents/Enums/ZipError.html | 2 +- .../Resources/Documents/Enums/ZlibError.html | 2 +- .../Resources/Documents/Protocols.html | 2 +- .../Documents/Protocols/Archive.html | 2 +- .../Protocols/DecompressionAlgorithm.html | 2 +- .../Contents/Resources/Documents/Structs.html | 14 ++- .../Documents/Structs/GzipHeader.html | 2 +- .../Structs/GzipHeader/CompressionMethod.html | 2 +- .../Structs/GzipHeader/FileSystemType.html | 2 +- .../Resources/Documents/Structs/ZipEntry.html | 46 ++++++-- .../Documents/Structs/ZlibHeader.html | 2 +- .../Structs/ZlibHeader/CompressionLevel.html | 2 +- .../Structs/ZlibHeader/CompressionMethod.html | 2 +- .../Contents/Resources/Documents/index.html | 2 +- .../Contents/Resources/Documents/search.json | 2 +- .../Resources/Documents/undocumented.json | 57 +-------- .../Contents/Resources/docSet.dsidx | Bin 45056 -> 45056 bytes docs/docsets/SWCompression.tgz | Bin 98153 -> 98811 bytes docs/index.html | 2 +- docs/search.json | 2 +- docs/undocumented.json | 57 +-------- 69 files changed, 428 insertions(+), 227 deletions(-) diff --git a/Sources/Deflate.swift b/Sources/Deflate.swift index 9b49614e..89956ea6 100644 --- a/Sources/Deflate.swift +++ b/Sources/Deflate.swift @@ -225,6 +225,16 @@ public final class Deflate: DecompressionAlgorithm { return out } + /** + Compresses `data` with DEFLATE algortihm. + + If during compression something goes wrong `DeflateError` will be thrown. + + - Note: Currently, SWCompression creates only one block for all data + and the block can either be uncompressed or compressed with static Huffman encoding. + Uncompressed block is created if amount of data provided is less than 3 bytes and + static Huffman is used in all other cases. + */ public static func compress(data: Data) throws -> Data { let bytes = data.toArray(type: UInt8.self) @@ -335,7 +345,7 @@ public final class Deflate: DecompressionAlgorithm { } // TODO: Expand dictionary size. - private static func lengthEncode(_ rawBytes: [UInt8], _ dictSize: Int = 1 << 12) -> [BLDCode] { + private static func lengthEncode(_ rawBytes: [UInt8]) -> [BLDCode] { precondition(rawBytes.count >= 3, "Too small array!") var buffer: [BLDCode] = [] diff --git a/Sources/ZipContainer.swift b/Sources/ZipContainer.swift index ffda388e..07049582 100644 --- a/Sources/ZipContainer.swift +++ b/Sources/ZipContainer.swift @@ -47,18 +47,22 @@ public enum ZipError: Error { case WrongCRC32 } +/// Represents either a file or directory entry inside ZIP archive. public struct ZipEntry { fileprivate let cdEntry: CentralDirectoryEntry + /// Name of the file or directory. public var fileName: String? { return self.cdEntry.fileComment } + /// Comment associated with the entry. public var fileComment: String? { return self.cdEntry.fileComment } + /// File or directory attributes related to the file system of archive's creator. public var fileAttributes: UInt32 { return self.cdEntry.externalFileAttributes } @@ -74,8 +78,28 @@ public class ZipContainer { private var pointerData: DataWithPointer + /// All file and directory entries found in ZIP archive (in its Central Directory). public private(set) var entries: [ZipEntry] + /** + Tries to open ZIP archive and parse its Central Directory. + If parsing is successful then `entries` property will contain all directory or file entries found in archive. + + - Important: The order of entries is defined by ZIP archive and, particularly, creator of given ZIP container. + It is likely that directories will be encountered earlier than files stored in those directories, + but one SHOULD NOT assume that this is the case. + + - Note: Currently, there is no universal (platform and file system independent) method to determine if entry is a directory. + One can check this by looking at the size of entry's data (it should be 0 for directory) AND + the last character of entry's name (it should be '/'). If all of these is true then entry is likely to be a directory. + + - Note: Only ZIP containers complying to ISO/IEC 21320-1 standard are supported. + + - Parameter containerData: Data of ZIP container. + + - Throws: `ZipError` or `DeflateError` depending on the type of inconsistency in data. + It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all. + */ public init(containerData data: Data) throws { /// Object with input data which supports convenient work with bit shifts. self.pointerData = DataWithPointer(data: data, bitOrder: .reversed) @@ -107,6 +131,17 @@ public class ZipContainer { } + /** + Returns data associated with provided ZipEntry. + + - Note: Returned `Data` object with the size of 0 can either indicate that the entry is an empty file + or it is a directory. + + - Parameter zipEntry: file or directory entry from current container. + + - Throws: `ZipError` or `DeflateError` depending on the type of inconsistency in data. + An error can indicate that the container is damaged. + */ public func data(for zipEntry: ZipEntry) throws -> Data { // Now, let's move to the location of local header. pointerData.index = Int(UInt32(truncatingBitPattern: zipEntry.cdEntry.offset)) @@ -185,7 +220,7 @@ public class ZipContainer { - Parameter containerData: Data of ZIP container. - Throws: `ZipError` or `DeflateError` depending on the type of inconsistency in data. - It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all. + It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all. - Returns: Array of pairs (tuples) where first member is `entryName` and second member is `entryData`. */ diff --git a/docs/Classes.html b/docs/Classes.html index 1eb8f2bc..29f98cef 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -256,7 +256,7 @@

- Show on GitHub + Show on GitHub
@@ -361,7 +361,7 @@
- Show on GitHub + Show on GitHub
diff --git a/docs/Classes/BZip2.html b/docs/Classes/BZip2.html index 1cfdab13..bb1d9cb7 100644 --- a/docs/Classes/BZip2.html +++ b/docs/Classes/BZip2.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Classes/Deflate.html b/docs/Classes/Deflate.html index 763fdee2..ed429fad 100644 --- a/docs/Classes/Deflate.html +++ b/docs/Classes/Deflate.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -244,19 +244,30 @@ It may indicate that either the data is damaged or it might not be compressed wi

-

Undocumented

+

Compresses data with DEFLATE algortihm.

+ +

If during compression something goes wrong DeflateError will be thrown.

+ +
+

Note

+ Currently, SWCompression creates only one block for all data +and the block can either be uncompressed or compressed with static Huffman encoding. +Uncompressed block is created if amount of data provided is less than 3 bytes and +static Huffman is used in all other cases. + +

Declaration

Swift

-
public final class Deflate: DecompressionAlgorithm
+
public static func compress(data: Data) throws -> Data
diff --git a/docs/Classes/GzipArchive.html b/docs/Classes/GzipArchive.html index b9dc16cd..5a213af3 100644 --- a/docs/Classes/GzipArchive.html +++ b/docs/Classes/GzipArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Classes/LZMA.html b/docs/Classes/LZMA.html index dbe1b5b0..ac04ea98 100644 --- a/docs/Classes/LZMA.html +++ b/docs/Classes/LZMA.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Classes/LZMA2.html b/docs/Classes/LZMA2.html index 101ebc34..f5f79dc6 100644 --- a/docs/Classes/LZMA2.html +++ b/docs/Classes/LZMA2.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Classes/XZArchive.html b/docs/Classes/XZArchive.html index 185c6ad3..02de5fde 100644 --- a/docs/Classes/XZArchive.html +++ b/docs/Classes/XZArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Classes/ZipContainer.html b/docs/Classes/ZipContainer.html index 9e1bb6c2..f9d7b7f1 100644 --- a/docs/Classes/ZipContainer.html +++ b/docs/Classes/ZipContainer.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -180,19 +180,19 @@

-

Undocumented

+

All file and directory entries found in ZIP archive (in its Central Directory).

Declaration

Swift

-
public class ZipContainer
+
public private(set) var entries: [ZipEntry]
@@ -210,19 +210,69 @@
-

Undocumented

+

Tries to open ZIP archive and parse its Central Directory. +If parsing is successful then entries property will contain all directory or file entries found in archive.

+ +
+

Important

+

The order of entries is defined by ZIP archive and, particularly, creator of given ZIP container. +It is likely that directories will be encountered earlier than files stored in those directories, +but one SHOULD NOT assume that this is the case.

+ +
+ +
+

Note

+

Currently, there is no universal (platform and file system independent) method to determine if entry is a directory. +One can check this by looking at the size of entry’s data (it should be 0 for directory) AND +the last character of entry’s name (it should be ‘/’). If all of these is true then entry is likely to be a directory.

+ +
+ +
+

Note

+

Only ZIP containers complying to ISO/IEC 21320-1 standard are supported.

+ +
+ +
+

Throws

+

ZipError or DeflateError depending on the type of inconsistency in data. +It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all.

+ +

Declaration

Swift

-
public class ZipContainer
+
public init(containerData data: Data) throws
+
+

Parameters

+ + + + + + + +
+ + containerData + + +
+

Data of ZIP container.

+ +
+
+
@@ -240,19 +290,53 @@
-

Undocumented

+

Returns data associated with provided ZipEntry.

+ +
+

Note

+

Returned Data object with the size of 0 can either indicate that the entry is an empty file +or it is a directory.

+ +
+ +
+

Throws

+

ZipError or DeflateError depending on the type of inconsistency in data. +An error can indicate that the container is damaged.

+ +

Declaration

Swift

-
public class ZipContainer
+
public func data(for zipEntry: ZipEntry) throws -> Data
+
+

Parameters

+ + + + + + + +
+ + zipEntry + + +
+

file or directory entry from current container.

+ +
+
+
@@ -298,7 +382,7 @@ the last character of entry’s name (it should be ‘/’). If all

Throws

ZipError or DeflateError depending on the type of inconsistency in data. -It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all.

+It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all.

@@ -337,7 +421,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont
- Show on GitHub + Show on GitHub
diff --git a/docs/Classes/ZlibArchive.html b/docs/Classes/ZlibArchive.html index 93d6c0d4..c73c77dc 100644 --- a/docs/Classes/ZlibArchive.html +++ b/docs/Classes/ZlibArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Enums.html b/docs/Enums.html index 76efcc45..03600ef7 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Enums/BZip2Error.html b/docs/Enums/BZip2Error.html index 099cdfd3..fa51e5e0 100644 --- a/docs/Enums/BZip2Error.html +++ b/docs/Enums/BZip2Error.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Enums/DeflateError.html b/docs/Enums/DeflateError.html index b9075084..6a9db734 100644 --- a/docs/Enums/DeflateError.html +++ b/docs/Enums/DeflateError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Enums/GzipError.html b/docs/Enums/GzipError.html index a0b1e514..be08f376 100644 --- a/docs/Enums/GzipError.html +++ b/docs/Enums/GzipError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Enums/LZMA2Error.html b/docs/Enums/LZMA2Error.html index 9d450f1c..8baa44bb 100644 --- a/docs/Enums/LZMA2Error.html +++ b/docs/Enums/LZMA2Error.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Enums/LZMAError.html b/docs/Enums/LZMAError.html index f50e7e33..741d93f7 100644 --- a/docs/Enums/LZMAError.html +++ b/docs/Enums/LZMAError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Enums/XZError.html b/docs/Enums/XZError.html index bc14e588..b964e0dc 100644 --- a/docs/Enums/XZError.html +++ b/docs/Enums/XZError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Enums/ZipError.html b/docs/Enums/ZipError.html index 0ea33993..7819945e 100644 --- a/docs/Enums/ZipError.html +++ b/docs/Enums/ZipError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Enums/ZlibError.html b/docs/Enums/ZlibError.html index df3bfae5..c7788886 100644 --- a/docs/Enums/ZlibError.html +++ b/docs/Enums/ZlibError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Protocols.html b/docs/Protocols.html index d174c2ba..43c15d2b 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Protocols/Archive.html b/docs/Protocols/Archive.html index a50f2b7f..a1a1d109 100644 --- a/docs/Protocols/Archive.html +++ b/docs/Protocols/Archive.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Protocols/DecompressionAlgorithm.html b/docs/Protocols/DecompressionAlgorithm.html index c178a387..62206dab 100644 --- a/docs/Protocols/DecompressionAlgorithm.html +++ b/docs/Protocols/DecompressionAlgorithm.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Structs.html b/docs/Structs.html index 947f4b95..e3bf8198 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -208,12 +208,20 @@

-

Undocumented

+

Represents either a file or directory entry inside ZIP archive.

See more
+
+

Declaration

+
+

Swift

+
public struct ZipEntry
+ +
+
diff --git a/docs/Structs/GzipHeader.html b/docs/Structs/GzipHeader.html index b8dbe7a6..cf25a9ff 100644 --- a/docs/Structs/GzipHeader.html +++ b/docs/Structs/GzipHeader.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Structs/GzipHeader/CompressionMethod.html b/docs/Structs/GzipHeader/CompressionMethod.html index 02bba75c..75d39040 100644 --- a/docs/Structs/GzipHeader/CompressionMethod.html +++ b/docs/Structs/GzipHeader/CompressionMethod.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Structs/GzipHeader/FileSystemType.html b/docs/Structs/GzipHeader/FileSystemType.html index b00b30c9..1c0e2064 100644 --- a/docs/Structs/GzipHeader/FileSystemType.html +++ b/docs/Structs/GzipHeader/FileSystemType.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Structs/ZipEntry.html b/docs/Structs/ZipEntry.html index e8539550..dd236778 100644 --- a/docs/Structs/ZipEntry.html +++ b/docs/Structs/ZipEntry.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -152,7 +152,13 @@

ZipEntry

-

Undocumented

+
+
+
public struct ZipEntry
+ +
+
+

Represents either a file or directory entry inside ZIP archive.

@@ -174,11 +180,19 @@
-

Undocumented

+

Name of the file or directory.

+
+

Declaration

+
+

Swift

+
public var fileName: String?
+ +
+
@@ -196,11 +210,19 @@
-

Undocumented

+

Comment associated with the entry.

+
+

Declaration

+
+

Swift

+
public var fileComment: String?
+ +
+
@@ -218,11 +240,19 @@
-

Undocumented

+

File or directory attributes related to the file system of archive’s creator.

+
+

Declaration

+
+

Swift

+
public var fileAttributes: UInt32
+ +
+
diff --git a/docs/Structs/ZlibHeader.html b/docs/Structs/ZlibHeader.html index 1306fbf0..238145a8 100644 --- a/docs/Structs/ZlibHeader.html +++ b/docs/Structs/ZlibHeader.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Structs/ZlibHeader/CompressionLevel.html b/docs/Structs/ZlibHeader/CompressionLevel.html index 98fbc913..7dd1190c 100644 --- a/docs/Structs/ZlibHeader/CompressionLevel.html +++ b/docs/Structs/ZlibHeader/CompressionLevel.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/Structs/ZlibHeader/CompressionMethod.html b/docs/Structs/ZlibHeader/CompressionMethod.html index 7fa29476..0cbb5327 100644 --- a/docs/Structs/ZlibHeader/CompressionMethod.html +++ b/docs/Structs/ZlibHeader/CompressionMethod.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/badge.svg b/docs/badge.svg index a720cf66..2e7f8964 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -1 +1 @@ -documentationdocumentation93%93% \ No newline at end of file +documentationdocumentation100%100% \ No newline at end of file diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html index 1eb8f2bc..29f98cef 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -256,7 +256,7 @@

- Show on GitHub + Show on GitHub
@@ -361,7 +361,7 @@
- Show on GitHub + Show on GitHub
diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html index 1cfdab13..bb1d9cb7 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html index 763fdee2..ed429fad 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -244,19 +244,30 @@ It may indicate that either the data is damaged or it might not be compressed wi

-

Undocumented

+

Compresses data with DEFLATE algortihm.

+ +

If during compression something goes wrong DeflateError will be thrown.

+ +
+

Note

+ Currently, SWCompression creates only one block for all data +and the block can either be uncompressed or compressed with static Huffman encoding. +Uncompressed block is created if amount of data provided is less than 3 bytes and +static Huffman is used in all other cases. + +

Declaration

Swift

-
public final class Deflate: DecompressionAlgorithm
+
public static func compress(data: Data) throws -> Data
diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html index b9dc16cd..5a213af3 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html index dbe1b5b0..ac04ea98 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html index 101ebc34..f5f79dc6 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html index 185c6ad3..02de5fde 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html index 9e1bb6c2..f9d7b7f1 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -180,19 +180,19 @@

-

Undocumented

+

All file and directory entries found in ZIP archive (in its Central Directory).

Declaration

Swift

-
public class ZipContainer
+
public private(set) var entries: [ZipEntry]
@@ -210,19 +210,69 @@
-

Undocumented

+

Tries to open ZIP archive and parse its Central Directory. +If parsing is successful then entries property will contain all directory or file entries found in archive.

+ +
+

Important

+

The order of entries is defined by ZIP archive and, particularly, creator of given ZIP container. +It is likely that directories will be encountered earlier than files stored in those directories, +but one SHOULD NOT assume that this is the case.

+ +
+ +
+

Note

+

Currently, there is no universal (platform and file system independent) method to determine if entry is a directory. +One can check this by looking at the size of entry’s data (it should be 0 for directory) AND +the last character of entry’s name (it should be ‘/’). If all of these is true then entry is likely to be a directory.

+ +
+ +
+

Note

+

Only ZIP containers complying to ISO/IEC 21320-1 standard are supported.

+ +
+ +
+

Throws

+

ZipError or DeflateError depending on the type of inconsistency in data. +It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all.

+ +

Declaration

Swift

-
public class ZipContainer
+
public init(containerData data: Data) throws
+
+

Parameters

+ + + + + + + +
+ + containerData + + +
+

Data of ZIP container.

+ +
+
+
@@ -240,19 +290,53 @@
-

Undocumented

+

Returns data associated with provided ZipEntry.

+ +
+

Note

+

Returned Data object with the size of 0 can either indicate that the entry is an empty file +or it is a directory.

+ +
+ +
+

Throws

+

ZipError or DeflateError depending on the type of inconsistency in data. +An error can indicate that the container is damaged.

+ +

Declaration

Swift

-
public class ZipContainer
+
public func data(for zipEntry: ZipEntry) throws -> Data
+
+

Parameters

+ + + + + + + +
+ + zipEntry + + +
+

file or directory entry from current container.

+ +
+
+
@@ -298,7 +382,7 @@ the last character of entry’s name (it should be ‘/’). If all

Throws

ZipError or DeflateError depending on the type of inconsistency in data. -It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all.

+It may indicate that either the container is damaged or it might not be ZIP container or compressed with Deflate at all.

@@ -337,7 +421,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont
- Show on GitHub + Show on GitHub
diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html index 93d6c0d4..c73c77dc 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html index 76efcc45..03600ef7 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html index 099cdfd3..fa51e5e0 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html index b9075084..6a9db734 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html index a0b1e514..be08f376 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html index 9d450f1c..8baa44bb 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html index f50e7e33..741d93f7 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html index bc14e588..b964e0dc 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html index 0ea33993..7819945e 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html index df3bfae5..c7788886 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html index d174c2ba..43c15d2b 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html index a50f2b7f..a1a1d109 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html index c178a387..62206dab 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html index 947f4b95..e3bf8198 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -208,12 +208,20 @@

-

Undocumented

+

Represents either a file or directory entry inside ZIP archive.

See more
+
+

Declaration

+
+

Swift

+
public struct ZipEntry
+ +
+
diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html index b8dbe7a6..cf25a9ff 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html index 02bba75c..75d39040 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html index b00b30c9..1c0e2064 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html index e8539550..dd236778 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

@@ -152,7 +152,13 @@

ZipEntry

-

Undocumented

+
+
+
public struct ZipEntry
+ +
+
+

Represents either a file or directory entry inside ZIP archive.

@@ -174,11 +180,19 @@
-

Undocumented

+

Name of the file or directory.

+
+

Declaration

+
+

Swift

+
public var fileName: String?
+ +
+
@@ -196,11 +210,19 @@
-

Undocumented

+

Comment associated with the entry.

+
+

Declaration

+
+

Swift

+
public var fileComment: String?
+ +
+
@@ -218,11 +240,19 @@
-

Undocumented

+

File or directory attributes related to the file system of archive’s creator.

+
+

Declaration

+
+

Swift

+
public var fileAttributes: UInt32
+ +
+
diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html index 1306fbf0..238145a8 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html index 98fbc913..7dd1190c 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html index 7fa29476..0cbb5327 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html @@ -23,7 +23,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html index 51987387..60adf06c 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json index 6c9f1b12..962b7790 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16fastestAlgorithmFMS1_S1_":{"name":"fastestAlgorithm","abstract":"

Fastest algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13fastAlgorithmFMS1_S1_":{"name":"fastAlgorithm","abstract":"

Fast algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16defaultAlgorithmFMS1_S1_":{"name":"defaultAlgorithm","abstract":"

Default algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13slowAlgorithmFMS1_S1_":{"name":"slowAlgorithm","abstract":"

Slowest algorithm but with maximum compression.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionMethod.html#/s:FOV13SWCompression10ZlibHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/ZlibHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader/CompressionLevel.html":{"name":"CompressionLevel","abstract":"

Levels of compression which can be used to create zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader16compressionLevelOS0_16CompressionLevel":{"name":"compressionLevel","abstract":"

Level of compression in the archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader10windowSizeSi":{"name":"windowSize","abstract":"

Size of ‘window’: moving interval of data which was used to make the archive

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:FV13SWCompression10ZlibHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values from zlib archive presented in archiveData.

","parent_name":"ZlibHeader"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry8fileNameGSqSS_":{"name":"fileName","abstract":"Undocumented","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry11fileCommentGSqSS_":{"name":"fileComment","abstract":"Undocumented","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry14fileAttributesVs6UInt32":{"name":"fileAttributes","abstract":"Undocumented","parent_name":"ZipEntry"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

One of many Linux systems. (It seems like modern macOS systems also fall into this category).

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType9macintoshFMS1_S1_":{"name":"macintosh","abstract":"

Older Macintosh (Mac OS, OS X) systems.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4ntfsFMS1_S1_":{"name":"ntfs","abstract":"

File system used in Microsoft™®© Windows™®©.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType7unknownFMS1_S1_":{"name":"unknown","abstract":"

File system was unknown to the archiver.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType5otherFMS1_S1_":{"name":"other","abstract":"

File system was one of the rare systems..

","parent_name":"FileSystemType"},"Structs/GzipHeader/CompressionMethod.html#/s:FOV13SWCompression10GzipHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/GzipHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in gzip archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader/FileSystemType.html":{"name":"FileSystemType","abstract":"

Type of file system on which gzip archive was created.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

The most recent modification time of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader6osTypeOS0_14FileSystemType":{"name":"osType","abstract":"

Type of file system on which compression took place.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16originalFileNameGSqSS_":{"name":"originalFileName","abstract":"

Name of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader7commentGSqSS_":{"name":"comment","abstract":"

Comment inside the archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:FV13SWCompression10GzipHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html":{"name":"GzipHeader","abstract":"

A structure which provides information about gzip archive.

"},"Structs/ZipEntry.html":{"name":"ZipEntry","abstract":"Undocumented"},"Structs/ZlibHeader.html":{"name":"ZlibHeader","abstract":"

A structure which provides information about zlib archive.

"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Abstract decompress function.

","parent_name":"DecompressionAlgorithm"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Abstract unarchive function.

","parent_name":"Archive"},"Protocols/Archive.html":{"name":"Archive","abstract":"

Abstract archive class which supports unarchiving.

"},"Protocols/DecompressionAlgorithm.html":{"name":"DecompressionAlgorithm","abstract":"

Abstract decompression algorithm class which supports decompression.

"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Either magic number in header or footer was not equal to predefined value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError16WrongArchiveInfoFMS0_S0_":{"name":"WrongArchiveInfo","abstract":"

One of special fields of archive had an incorrect value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18FieldReservedValueFMS0_S0_":{"name":"FieldReservedValue","abstract":"

One of special fields of archive had a reserved value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongInfoCRCFMS0_S0_":{"name":"WrongInfoCRC","abstract":"

Checksum of one of special fields of archive was incorrect.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongFilterIDFMS0_S0_":{"name":"WrongFilterID","abstract":"

ID of filter(s) used in archvie was unsupported.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15CheckTypeSHA256FMS0_S0_":{"name":"CheckTypeSHA256","abstract":"

Type of checksum of archive was SHA-256.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongDataSizeFMS0_S0_":{"name":"WrongDataSize","abstract":"

Either size of decompressed data was not equal to specified one in block header or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongCheckFMS0_FV10Foundation4DataS0_":{"name":"WrongCheck","abstract":"

Computed checksum of uncompressed data didn’t match the value stored in the archive.","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongPaddingFMS0_S0_":{"name":"WrongPadding","abstract":"

Unsupported padding of a structure in the archive.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError21MultiByteIntegerErrorFMS0_S0_":{"name":"MultiByteIntegerError","abstract":"

Either null byte encountered or exceeded maximum amount bytes during reading multi byte number.

","parent_name":"XZError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Magic number was not 0x425a.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was not type ‘h’ (not Huffman).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockSizeFMS0_S0_":{"name":"WrongBlockSize","abstract":"

Unknown block size (not from ‘0’ to ‘9’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (was neither ‘pi’ nor ‘sqrt(pi)’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error15RandomizedBlockFMS0_S0_":{"name":"RandomizedBlock","abstract":"

Block is randomized.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error18WrongHuffmanGroupsFMS0_S0_":{"name":"WrongHuffmanGroups","abstract":"

Wrong number of Huffman tables/groups (should be between 2 and 6).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error13WrongSelectorFMS0_S0_":{"name":"WrongSelector","abstract":"

Selector was greater than total number of Huffman tables/groups.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongHuffmanLengthCodeFMS0_S0_":{"name":"WrongHuffmanLengthCode","abstract":"

Wrong code of Huffman length (should be between 0 and 20).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29WrongUncompressedBlockLengthsFMS0_S0_":{"name":"WrongUncompressedBlockLengths","abstract":"

Uncompressed block’ length and nlength bytes were not compatible.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (not from 0 to 2).

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError11WrongSymbolFMS0_S0_":{"name":"WrongSymbol","abstract":"

Decoded symbol was found in Huffman tree but is unknown.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"DeflateError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20WrongCompressionInfoFMS0_S0_":{"name":"WrongCompressionInfo","abstract":"

Compression info was greater than 7 which is uncompatible number 8 compression method.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11WrongFcheckFMS0_S0_":{"name":"WrongFcheck","abstract":"

First two bytes were inconsistent with each other.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21WrongCompressionLevelFMS0_S0_":{"name":"WrongCompressionLevel","abstract":"

Compression level was other than 0, 1, 2, 3.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12WrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"WrongAdler32","abstract":"

Computed Adler-32 sum of uncompressed data didn’t match the value stored in the archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Properties byte was greater than 225.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError21RangeDecoderInitErrorFMS0_S0_":{"name":"RangeDecoderInitError","abstract":"

Unable to initialize RanderDecorer.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError24ExceededUncompressedSizeFMS0_S0_":{"name":"ExceededUncompressedSize","abstract":"

The number of uncompressed bytes hit limit in the middle of decoding.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError13WindowIsEmptyFMS0_S0_":{"name":"WindowIsEmpty","abstract":"

Unable to perfrom repeat-distance decoding because there is nothing to repeat.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError23RangeDecoderFinishErrorFMS0_S0_":{"name":"RangeDecoderFinishError","abstract":"

End of stream marker is reached, but range decoder is in incorrect state.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError16RepeatWillExceedFMS0_S0_":{"name":"RepeatWillExceed","abstract":"

The number of bytes to repeat is greater than the amount bytes that is left to decode.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError17NotEnoughToRepeatFMS0_S0_":{"name":"NotEnoughToRepeat","abstract":"

The amount of already decoded bytes is smaller than repeat length.

","parent_name":"LZMAError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27NotFoundCentralDirectoryEndFMS0_S0_":{"name":"NotFoundCentralDirectoryEnd","abstract":"

End of Central Directoty record was not found.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14WrongSignatureFMS0_S0_":{"name":"WrongSignature","abstract":"

Wrong signature of one of ZIP container’s structures.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9WrongSizeFMS0_S0_":{"name":"WrongSize","abstract":"

Wrong either compressed or uncompressed size of a ZIP container’s entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12WrongVersionFMS0_S0_":{"name":"WrongVersion","abstract":"

Wrong number of version needed to extract ZIP container.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24MultiVolumesNotSupportedFMS0_S0_":{"name":"MultiVolumesNotSupported","abstract":"

Archive either spanned or consists of several volumes. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22EncryptionNotSupportedFMS0_S0_":{"name":"EncryptionNotSupported","abstract":"

Entry or record is encrypted. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20PatchingNotSupportedFMS0_S0_":{"name":"PatchingNotSupported","abstract":"

Entry contains patched data. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23CompressionNotSupportedFMS0_S0_":{"name":"CompressionNotSupported","abstract":"

Wrong compression method of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16WrongLocalHeaderFMS0_S0_":{"name":"WrongLocalHeader","abstract":"

Wrong local header of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10WrongCRC32FMS0_S0_":{"name":"WrongCRC32","abstract":"

Wrong computed CRC32 of an entry.

","parent_name":"ZipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

First two bytes of archive were not 31 and 139.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongFlagsFMS0_S0_":{"name":"WrongFlags","abstract":"

Reserved flags bits were not equal to 0.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14WrongHeaderCRCFMS0_S0_":{"name":"WrongHeaderCRC","abstract":"

Computed CRC of header didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8WrongCRCFMS0_FV10Foundation4DataS0_":{"name":"WrongCRC","abstract":"

Computed CRC of uncompressed data didn’t match the value stored in the archive.","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongISizeFMS0_S0_":{"name":"WrongISize","abstract":"

Computed isize didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Reserved bits of LZMA2 properties byte were not equal to zero.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19WrongDictionarySizeFMS0_S0_":{"name":"WrongDictionarySize","abstract":"

Dictionary size was too big.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error16WrongControlByteFMS0_S0_":{"name":"WrongControlByte","abstract":"

Unknown conrol byte value of LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongResetFMS0_S0_":{"name":"WrongReset","abstract":"

Unknown reset instruction encounetered in LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongSizesFMS0_S0_":{"name":"WrongSizes","abstract":"

Either size of decompressed data was not equal to specified one in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

Error happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

Error happened during unarchiving gzip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

Error happened during processing ZIP archive (container)."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

Error happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

Error happened during unarchiving Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

Error happened during deflate decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

Error happened during bzip2 decompression."},"Enums/XZError.html":{"name":"XZError","abstract":"

Error happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives xz archive stored in archiveData.

","parent_name":"XZArchive"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with BZip2 algortihm.

","parent_name":"BZip2"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate8compressFzT4dataV10Foundation4Data_S2_":{"name":"compress(data:)","abstract":"Undocumented","parent_name":"Deflate"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives Zlib archive stored in archiveData.

","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA algortihm.

","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_":{"name":"entries","abstract":"Undocumented","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_":{"name":"init(containerData:)","abstract":"Undocumented","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data":{"name":"data(for:)","abstract":"Undocumented","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___":{"name":"open(containerData:)","abstract":"

Processes ZIP archive (container) and returns an array of tuples (String, Data).","parent_name":"ZipContainer"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives gzip archive stored in archiveData.

","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

","parent_name":"LZMA2"},"Classes/LZMA2.html":{"name":"LZMA2","abstract":"

Provides function to decompress data, which were compressed with LZMA2

"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

Provides unarchive function for GZip archives.

"},"Classes/ZipContainer.html":{"name":"ZipContainer","abstract":"

Provides function to open ZIP archives (containers).

"},"Classes/LZMA.html":{"name":"LZMA","abstract":"

Provides function to decompress data, which were compressed with LZMA

"},"Classes/ZlibArchive.html":{"name":"ZlibArchive","abstract":"

Provides unarchive function for Zlib archives.

"},"Classes/Deflate.html":{"name":"Deflate","abstract":"

Provides function to decompress data, which were compressed with DEFLATE.

"},"Classes/BZip2.html":{"name":"BZip2","abstract":"

Provides function to decompress data, which were compressed using BZip2.

"},"Classes/XZArchive.html":{"name":"XZArchive","abstract":"

Provides unarchive function for XZ archives.

"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally."},"Enums.html":{"name":"Enums","abstract":"The following enums are available globally."},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally."},"Structs.html":{"name":"Structs","abstract":"The following structs are available globally."}} \ No newline at end of file +{"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16fastestAlgorithmFMS1_S1_":{"name":"fastestAlgorithm","abstract":"

Fastest algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13fastAlgorithmFMS1_S1_":{"name":"fastAlgorithm","abstract":"

Fast algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16defaultAlgorithmFMS1_S1_":{"name":"defaultAlgorithm","abstract":"

Default algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13slowAlgorithmFMS1_S1_":{"name":"slowAlgorithm","abstract":"

Slowest algorithm but with maximum compression.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionMethod.html#/s:FOV13SWCompression10ZlibHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/ZlibHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader/CompressionLevel.html":{"name":"CompressionLevel","abstract":"

Levels of compression which can be used to create zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader16compressionLevelOS0_16CompressionLevel":{"name":"compressionLevel","abstract":"

Level of compression in the archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader10windowSizeSi":{"name":"windowSize","abstract":"

Size of ‘window’: moving interval of data which was used to make the archive

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:FV13SWCompression10ZlibHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values from zlib archive presented in archiveData.

","parent_name":"ZlibHeader"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry8fileNameGSqSS_":{"name":"fileName","abstract":"

Name of the file or directory.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry11fileCommentGSqSS_":{"name":"fileComment","abstract":"

Comment associated with the entry.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry14fileAttributesVs6UInt32":{"name":"fileAttributes","abstract":"

File or directory attributes related to the file system of archive’s creator.

","parent_name":"ZipEntry"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

One of many Linux systems. (It seems like modern macOS systems also fall into this category).

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType9macintoshFMS1_S1_":{"name":"macintosh","abstract":"

Older Macintosh (Mac OS, OS X) systems.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4ntfsFMS1_S1_":{"name":"ntfs","abstract":"

File system used in Microsoft™®© Windows™®©.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType7unknownFMS1_S1_":{"name":"unknown","abstract":"

File system was unknown to the archiver.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType5otherFMS1_S1_":{"name":"other","abstract":"

File system was one of the rare systems..

","parent_name":"FileSystemType"},"Structs/GzipHeader/CompressionMethod.html#/s:FOV13SWCompression10GzipHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/GzipHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in gzip archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader/FileSystemType.html":{"name":"FileSystemType","abstract":"

Type of file system on which gzip archive was created.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

The most recent modification time of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader6osTypeOS0_14FileSystemType":{"name":"osType","abstract":"

Type of file system on which compression took place.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16originalFileNameGSqSS_":{"name":"originalFileName","abstract":"

Name of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader7commentGSqSS_":{"name":"comment","abstract":"

Comment inside the archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:FV13SWCompression10GzipHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html":{"name":"GzipHeader","abstract":"

A structure which provides information about gzip archive.

"},"Structs/ZipEntry.html":{"name":"ZipEntry","abstract":"

Represents either a file or directory entry inside ZIP archive.

"},"Structs/ZlibHeader.html":{"name":"ZlibHeader","abstract":"

A structure which provides information about zlib archive.

"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Abstract decompress function.

","parent_name":"DecompressionAlgorithm"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Abstract unarchive function.

","parent_name":"Archive"},"Protocols/Archive.html":{"name":"Archive","abstract":"

Abstract archive class which supports unarchiving.

"},"Protocols/DecompressionAlgorithm.html":{"name":"DecompressionAlgorithm","abstract":"

Abstract decompression algorithm class which supports decompression.

"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Either magic number in header or footer was not equal to predefined value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError16WrongArchiveInfoFMS0_S0_":{"name":"WrongArchiveInfo","abstract":"

One of special fields of archive had an incorrect value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18FieldReservedValueFMS0_S0_":{"name":"FieldReservedValue","abstract":"

One of special fields of archive had a reserved value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongInfoCRCFMS0_S0_":{"name":"WrongInfoCRC","abstract":"

Checksum of one of special fields of archive was incorrect.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongFilterIDFMS0_S0_":{"name":"WrongFilterID","abstract":"

ID of filter(s) used in archvie was unsupported.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15CheckTypeSHA256FMS0_S0_":{"name":"CheckTypeSHA256","abstract":"

Type of checksum of archive was SHA-256.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongDataSizeFMS0_S0_":{"name":"WrongDataSize","abstract":"

Either size of decompressed data was not equal to specified one in block header or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongCheckFMS0_FV10Foundation4DataS0_":{"name":"WrongCheck","abstract":"

Computed checksum of uncompressed data didn’t match the value stored in the archive.","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongPaddingFMS0_S0_":{"name":"WrongPadding","abstract":"

Unsupported padding of a structure in the archive.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError21MultiByteIntegerErrorFMS0_S0_":{"name":"MultiByteIntegerError","abstract":"

Either null byte encountered or exceeded maximum amount bytes during reading multi byte number.

","parent_name":"XZError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Magic number was not 0x425a.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was not type ‘h’ (not Huffman).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockSizeFMS0_S0_":{"name":"WrongBlockSize","abstract":"

Unknown block size (not from ‘0’ to ‘9’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (was neither ‘pi’ nor ‘sqrt(pi)’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error15RandomizedBlockFMS0_S0_":{"name":"RandomizedBlock","abstract":"

Block is randomized.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error18WrongHuffmanGroupsFMS0_S0_":{"name":"WrongHuffmanGroups","abstract":"

Wrong number of Huffman tables/groups (should be between 2 and 6).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error13WrongSelectorFMS0_S0_":{"name":"WrongSelector","abstract":"

Selector was greater than total number of Huffman tables/groups.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongHuffmanLengthCodeFMS0_S0_":{"name":"WrongHuffmanLengthCode","abstract":"

Wrong code of Huffman length (should be between 0 and 20).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29WrongUncompressedBlockLengthsFMS0_S0_":{"name":"WrongUncompressedBlockLengths","abstract":"

Uncompressed block’ length and nlength bytes were not compatible.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (not from 0 to 2).

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError11WrongSymbolFMS0_S0_":{"name":"WrongSymbol","abstract":"

Decoded symbol was found in Huffman tree but is unknown.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"DeflateError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20WrongCompressionInfoFMS0_S0_":{"name":"WrongCompressionInfo","abstract":"

Compression info was greater than 7 which is uncompatible number 8 compression method.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11WrongFcheckFMS0_S0_":{"name":"WrongFcheck","abstract":"

First two bytes were inconsistent with each other.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21WrongCompressionLevelFMS0_S0_":{"name":"WrongCompressionLevel","abstract":"

Compression level was other than 0, 1, 2, 3.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12WrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"WrongAdler32","abstract":"

Computed Adler-32 sum of uncompressed data didn’t match the value stored in the archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Properties byte was greater than 225.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError21RangeDecoderInitErrorFMS0_S0_":{"name":"RangeDecoderInitError","abstract":"

Unable to initialize RanderDecorer.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError24ExceededUncompressedSizeFMS0_S0_":{"name":"ExceededUncompressedSize","abstract":"

The number of uncompressed bytes hit limit in the middle of decoding.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError13WindowIsEmptyFMS0_S0_":{"name":"WindowIsEmpty","abstract":"

Unable to perfrom repeat-distance decoding because there is nothing to repeat.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError23RangeDecoderFinishErrorFMS0_S0_":{"name":"RangeDecoderFinishError","abstract":"

End of stream marker is reached, but range decoder is in incorrect state.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError16RepeatWillExceedFMS0_S0_":{"name":"RepeatWillExceed","abstract":"

The number of bytes to repeat is greater than the amount bytes that is left to decode.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError17NotEnoughToRepeatFMS0_S0_":{"name":"NotEnoughToRepeat","abstract":"

The amount of already decoded bytes is smaller than repeat length.

","parent_name":"LZMAError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27NotFoundCentralDirectoryEndFMS0_S0_":{"name":"NotFoundCentralDirectoryEnd","abstract":"

End of Central Directoty record was not found.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14WrongSignatureFMS0_S0_":{"name":"WrongSignature","abstract":"

Wrong signature of one of ZIP container’s structures.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9WrongSizeFMS0_S0_":{"name":"WrongSize","abstract":"

Wrong either compressed or uncompressed size of a ZIP container’s entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12WrongVersionFMS0_S0_":{"name":"WrongVersion","abstract":"

Wrong number of version needed to extract ZIP container.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24MultiVolumesNotSupportedFMS0_S0_":{"name":"MultiVolumesNotSupported","abstract":"

Archive either spanned or consists of several volumes. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22EncryptionNotSupportedFMS0_S0_":{"name":"EncryptionNotSupported","abstract":"

Entry or record is encrypted. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20PatchingNotSupportedFMS0_S0_":{"name":"PatchingNotSupported","abstract":"

Entry contains patched data. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23CompressionNotSupportedFMS0_S0_":{"name":"CompressionNotSupported","abstract":"

Wrong compression method of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16WrongLocalHeaderFMS0_S0_":{"name":"WrongLocalHeader","abstract":"

Wrong local header of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10WrongCRC32FMS0_S0_":{"name":"WrongCRC32","abstract":"

Wrong computed CRC32 of an entry.

","parent_name":"ZipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

First two bytes of archive were not 31 and 139.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongFlagsFMS0_S0_":{"name":"WrongFlags","abstract":"

Reserved flags bits were not equal to 0.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14WrongHeaderCRCFMS0_S0_":{"name":"WrongHeaderCRC","abstract":"

Computed CRC of header didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8WrongCRCFMS0_FV10Foundation4DataS0_":{"name":"WrongCRC","abstract":"

Computed CRC of uncompressed data didn’t match the value stored in the archive.","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongISizeFMS0_S0_":{"name":"WrongISize","abstract":"

Computed isize didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Reserved bits of LZMA2 properties byte were not equal to zero.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19WrongDictionarySizeFMS0_S0_":{"name":"WrongDictionarySize","abstract":"

Dictionary size was too big.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error16WrongControlByteFMS0_S0_":{"name":"WrongControlByte","abstract":"

Unknown conrol byte value of LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongResetFMS0_S0_":{"name":"WrongReset","abstract":"

Unknown reset instruction encounetered in LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongSizesFMS0_S0_":{"name":"WrongSizes","abstract":"

Either size of decompressed data was not equal to specified one in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

Error happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

Error happened during unarchiving gzip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

Error happened during processing ZIP archive (container)."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

Error happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

Error happened during unarchiving Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

Error happened during deflate decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

Error happened during bzip2 decompression."},"Enums/XZError.html":{"name":"XZError","abstract":"

Error happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives xz archive stored in archiveData.

","parent_name":"XZArchive"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with BZip2 algortihm.

","parent_name":"BZip2"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate8compressFzT4dataV10Foundation4Data_S2_":{"name":"compress(data:)","abstract":"

Compresses data with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives Zlib archive stored in archiveData.

","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA algortihm.

","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_":{"name":"entries","abstract":"

All file and directory entries found in ZIP archive (in its Central Directory).

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_":{"name":"init(containerData:)","abstract":"

Tries to open ZIP archive and parse its Central Directory.","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data":{"name":"data(for:)","abstract":"

Returns data associated with provided ZipEntry.

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___":{"name":"open(containerData:)","abstract":"

Processes ZIP archive (container) and returns an array of tuples (String, Data).","parent_name":"ZipContainer"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives gzip archive stored in archiveData.

","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

","parent_name":"LZMA2"},"Classes/LZMA2.html":{"name":"LZMA2","abstract":"

Provides function to decompress data, which were compressed with LZMA2

"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

Provides unarchive function for GZip archives.

"},"Classes/ZipContainer.html":{"name":"ZipContainer","abstract":"

Provides function to open ZIP archives (containers).

"},"Classes/LZMA.html":{"name":"LZMA","abstract":"

Provides function to decompress data, which were compressed with LZMA

"},"Classes/ZlibArchive.html":{"name":"ZlibArchive","abstract":"

Provides unarchive function for Zlib archives.

"},"Classes/Deflate.html":{"name":"Deflate","abstract":"

Provides function to decompress data, which were compressed with DEFLATE.

"},"Classes/BZip2.html":{"name":"BZip2","abstract":"

Provides function to decompress data, which were compressed using BZip2.

"},"Classes/XZArchive.html":{"name":"XZArchive","abstract":"

Provides unarchive function for XZ archives.

"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally."},"Enums.html":{"name":"Enums","abstract":"The following enums are available globally."},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally."},"Structs.html":{"name":"Structs","abstract":"The following structs are available globally."}} \ No newline at end of file diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/undocumented.json index 704c4204..1862018e 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/undocumented.json +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/undocumented.json @@ -1,61 +1,6 @@ { "warnings": [ - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/Deflate.swift", - "line": 228, - "symbol": "Deflate.compress(data:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 50, - "symbol": "ZipEntry", - "symbol_kind": "source.lang.swift.decl.struct", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 54, - "symbol": "ZipEntry.fileName", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 58, - "symbol": "ZipEntry.fileComment", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 62, - "symbol": "ZipEntry.fileAttributes", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 77, - "symbol": "ZipContainer.entries", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 79, - "symbol": "ZipContainer.init(containerData:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 110, - "symbol": "ZipContainer.data(for:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - } + ], "source_directory": "/Users/timofeysolomko/Developer/SWCompression" } \ No newline at end of file diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/docSet.dsidx b/docs/docsets/SWCompression.docset/Contents/Resources/docSet.dsidx index f288827803260a43a24ebc716086400ba669514c..69588ea67ecb8ef8652548cc692fc204bd745580 100644 GIT binary patch delta 32 ocmZp8z|`=7X+jborv@(r0|OJk9s_?Dzuv~ey?mQ>`7bX30F>GZX8-^I delta 32 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%0Da_ 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 z�ZH_%mu3ek=RmsGa)*l0atEO* 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 delta 91613 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 z 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 diff --git a/docs/index.html b/docs/index.html index 51987387..60adf06c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -22,7 +22,7 @@ SWCompression Docs - (93% documented) + (100% documented)

diff --git a/docs/search.json b/docs/search.json index 6c9f1b12..962b7790 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16fastestAlgorithmFMS1_S1_":{"name":"fastestAlgorithm","abstract":"

Fastest algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13fastAlgorithmFMS1_S1_":{"name":"fastAlgorithm","abstract":"

Fast algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16defaultAlgorithmFMS1_S1_":{"name":"defaultAlgorithm","abstract":"

Default algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13slowAlgorithmFMS1_S1_":{"name":"slowAlgorithm","abstract":"

Slowest algorithm but with maximum compression.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionMethod.html#/s:FOV13SWCompression10ZlibHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/ZlibHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader/CompressionLevel.html":{"name":"CompressionLevel","abstract":"

Levels of compression which can be used to create zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader16compressionLevelOS0_16CompressionLevel":{"name":"compressionLevel","abstract":"

Level of compression in the archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader10windowSizeSi":{"name":"windowSize","abstract":"

Size of ‘window’: moving interval of data which was used to make the archive

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:FV13SWCompression10ZlibHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values from zlib archive presented in archiveData.

","parent_name":"ZlibHeader"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry8fileNameGSqSS_":{"name":"fileName","abstract":"Undocumented","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry11fileCommentGSqSS_":{"name":"fileComment","abstract":"Undocumented","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry14fileAttributesVs6UInt32":{"name":"fileAttributes","abstract":"Undocumented","parent_name":"ZipEntry"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

One of many Linux systems. (It seems like modern macOS systems also fall into this category).

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType9macintoshFMS1_S1_":{"name":"macintosh","abstract":"

Older Macintosh (Mac OS, OS X) systems.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4ntfsFMS1_S1_":{"name":"ntfs","abstract":"

File system used in Microsoft™®© Windows™®©.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType7unknownFMS1_S1_":{"name":"unknown","abstract":"

File system was unknown to the archiver.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType5otherFMS1_S1_":{"name":"other","abstract":"

File system was one of the rare systems..

","parent_name":"FileSystemType"},"Structs/GzipHeader/CompressionMethod.html#/s:FOV13SWCompression10GzipHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/GzipHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in gzip archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader/FileSystemType.html":{"name":"FileSystemType","abstract":"

Type of file system on which gzip archive was created.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

The most recent modification time of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader6osTypeOS0_14FileSystemType":{"name":"osType","abstract":"

Type of file system on which compression took place.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16originalFileNameGSqSS_":{"name":"originalFileName","abstract":"

Name of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader7commentGSqSS_":{"name":"comment","abstract":"

Comment inside the archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:FV13SWCompression10GzipHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html":{"name":"GzipHeader","abstract":"

A structure which provides information about gzip archive.

"},"Structs/ZipEntry.html":{"name":"ZipEntry","abstract":"Undocumented"},"Structs/ZlibHeader.html":{"name":"ZlibHeader","abstract":"

A structure which provides information about zlib archive.

"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Abstract decompress function.

","parent_name":"DecompressionAlgorithm"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Abstract unarchive function.

","parent_name":"Archive"},"Protocols/Archive.html":{"name":"Archive","abstract":"

Abstract archive class which supports unarchiving.

"},"Protocols/DecompressionAlgorithm.html":{"name":"DecompressionAlgorithm","abstract":"

Abstract decompression algorithm class which supports decompression.

"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Either magic number in header or footer was not equal to predefined value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError16WrongArchiveInfoFMS0_S0_":{"name":"WrongArchiveInfo","abstract":"

One of special fields of archive had an incorrect value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18FieldReservedValueFMS0_S0_":{"name":"FieldReservedValue","abstract":"

One of special fields of archive had a reserved value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongInfoCRCFMS0_S0_":{"name":"WrongInfoCRC","abstract":"

Checksum of one of special fields of archive was incorrect.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongFilterIDFMS0_S0_":{"name":"WrongFilterID","abstract":"

ID of filter(s) used in archvie was unsupported.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15CheckTypeSHA256FMS0_S0_":{"name":"CheckTypeSHA256","abstract":"

Type of checksum of archive was SHA-256.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongDataSizeFMS0_S0_":{"name":"WrongDataSize","abstract":"

Either size of decompressed data was not equal to specified one in block header or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongCheckFMS0_FV10Foundation4DataS0_":{"name":"WrongCheck","abstract":"

Computed checksum of uncompressed data didn’t match the value stored in the archive.","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongPaddingFMS0_S0_":{"name":"WrongPadding","abstract":"

Unsupported padding of a structure in the archive.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError21MultiByteIntegerErrorFMS0_S0_":{"name":"MultiByteIntegerError","abstract":"

Either null byte encountered or exceeded maximum amount bytes during reading multi byte number.

","parent_name":"XZError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Magic number was not 0x425a.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was not type ‘h’ (not Huffman).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockSizeFMS0_S0_":{"name":"WrongBlockSize","abstract":"

Unknown block size (not from ‘0’ to ‘9’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (was neither ‘pi’ nor ‘sqrt(pi)’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error15RandomizedBlockFMS0_S0_":{"name":"RandomizedBlock","abstract":"

Block is randomized.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error18WrongHuffmanGroupsFMS0_S0_":{"name":"WrongHuffmanGroups","abstract":"

Wrong number of Huffman tables/groups (should be between 2 and 6).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error13WrongSelectorFMS0_S0_":{"name":"WrongSelector","abstract":"

Selector was greater than total number of Huffman tables/groups.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongHuffmanLengthCodeFMS0_S0_":{"name":"WrongHuffmanLengthCode","abstract":"

Wrong code of Huffman length (should be between 0 and 20).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29WrongUncompressedBlockLengthsFMS0_S0_":{"name":"WrongUncompressedBlockLengths","abstract":"

Uncompressed block’ length and nlength bytes were not compatible.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (not from 0 to 2).

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError11WrongSymbolFMS0_S0_":{"name":"WrongSymbol","abstract":"

Decoded symbol was found in Huffman tree but is unknown.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"DeflateError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20WrongCompressionInfoFMS0_S0_":{"name":"WrongCompressionInfo","abstract":"

Compression info was greater than 7 which is uncompatible number 8 compression method.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11WrongFcheckFMS0_S0_":{"name":"WrongFcheck","abstract":"

First two bytes were inconsistent with each other.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21WrongCompressionLevelFMS0_S0_":{"name":"WrongCompressionLevel","abstract":"

Compression level was other than 0, 1, 2, 3.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12WrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"WrongAdler32","abstract":"

Computed Adler-32 sum of uncompressed data didn’t match the value stored in the archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Properties byte was greater than 225.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError21RangeDecoderInitErrorFMS0_S0_":{"name":"RangeDecoderInitError","abstract":"

Unable to initialize RanderDecorer.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError24ExceededUncompressedSizeFMS0_S0_":{"name":"ExceededUncompressedSize","abstract":"

The number of uncompressed bytes hit limit in the middle of decoding.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError13WindowIsEmptyFMS0_S0_":{"name":"WindowIsEmpty","abstract":"

Unable to perfrom repeat-distance decoding because there is nothing to repeat.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError23RangeDecoderFinishErrorFMS0_S0_":{"name":"RangeDecoderFinishError","abstract":"

End of stream marker is reached, but range decoder is in incorrect state.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError16RepeatWillExceedFMS0_S0_":{"name":"RepeatWillExceed","abstract":"

The number of bytes to repeat is greater than the amount bytes that is left to decode.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError17NotEnoughToRepeatFMS0_S0_":{"name":"NotEnoughToRepeat","abstract":"

The amount of already decoded bytes is smaller than repeat length.

","parent_name":"LZMAError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27NotFoundCentralDirectoryEndFMS0_S0_":{"name":"NotFoundCentralDirectoryEnd","abstract":"

End of Central Directoty record was not found.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14WrongSignatureFMS0_S0_":{"name":"WrongSignature","abstract":"

Wrong signature of one of ZIP container’s structures.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9WrongSizeFMS0_S0_":{"name":"WrongSize","abstract":"

Wrong either compressed or uncompressed size of a ZIP container’s entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12WrongVersionFMS0_S0_":{"name":"WrongVersion","abstract":"

Wrong number of version needed to extract ZIP container.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24MultiVolumesNotSupportedFMS0_S0_":{"name":"MultiVolumesNotSupported","abstract":"

Archive either spanned or consists of several volumes. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22EncryptionNotSupportedFMS0_S0_":{"name":"EncryptionNotSupported","abstract":"

Entry or record is encrypted. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20PatchingNotSupportedFMS0_S0_":{"name":"PatchingNotSupported","abstract":"

Entry contains patched data. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23CompressionNotSupportedFMS0_S0_":{"name":"CompressionNotSupported","abstract":"

Wrong compression method of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16WrongLocalHeaderFMS0_S0_":{"name":"WrongLocalHeader","abstract":"

Wrong local header of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10WrongCRC32FMS0_S0_":{"name":"WrongCRC32","abstract":"

Wrong computed CRC32 of an entry.

","parent_name":"ZipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

First two bytes of archive were not 31 and 139.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongFlagsFMS0_S0_":{"name":"WrongFlags","abstract":"

Reserved flags bits were not equal to 0.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14WrongHeaderCRCFMS0_S0_":{"name":"WrongHeaderCRC","abstract":"

Computed CRC of header didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8WrongCRCFMS0_FV10Foundation4DataS0_":{"name":"WrongCRC","abstract":"

Computed CRC of uncompressed data didn’t match the value stored in the archive.","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongISizeFMS0_S0_":{"name":"WrongISize","abstract":"

Computed isize didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Reserved bits of LZMA2 properties byte were not equal to zero.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19WrongDictionarySizeFMS0_S0_":{"name":"WrongDictionarySize","abstract":"

Dictionary size was too big.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error16WrongControlByteFMS0_S0_":{"name":"WrongControlByte","abstract":"

Unknown conrol byte value of LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongResetFMS0_S0_":{"name":"WrongReset","abstract":"

Unknown reset instruction encounetered in LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongSizesFMS0_S0_":{"name":"WrongSizes","abstract":"

Either size of decompressed data was not equal to specified one in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

Error happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

Error happened during unarchiving gzip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

Error happened during processing ZIP archive (container)."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

Error happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

Error happened during unarchiving Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

Error happened during deflate decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

Error happened during bzip2 decompression."},"Enums/XZError.html":{"name":"XZError","abstract":"

Error happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives xz archive stored in archiveData.

","parent_name":"XZArchive"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with BZip2 algortihm.

","parent_name":"BZip2"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate8compressFzT4dataV10Foundation4Data_S2_":{"name":"compress(data:)","abstract":"Undocumented","parent_name":"Deflate"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives Zlib archive stored in archiveData.

","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA algortihm.

","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_":{"name":"entries","abstract":"Undocumented","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_":{"name":"init(containerData:)","abstract":"Undocumented","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data":{"name":"data(for:)","abstract":"Undocumented","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___":{"name":"open(containerData:)","abstract":"

Processes ZIP archive (container) and returns an array of tuples (String, Data).","parent_name":"ZipContainer"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives gzip archive stored in archiveData.

","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

","parent_name":"LZMA2"},"Classes/LZMA2.html":{"name":"LZMA2","abstract":"

Provides function to decompress data, which were compressed with LZMA2

"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

Provides unarchive function for GZip archives.

"},"Classes/ZipContainer.html":{"name":"ZipContainer","abstract":"

Provides function to open ZIP archives (containers).

"},"Classes/LZMA.html":{"name":"LZMA","abstract":"

Provides function to decompress data, which were compressed with LZMA

"},"Classes/ZlibArchive.html":{"name":"ZlibArchive","abstract":"

Provides unarchive function for Zlib archives.

"},"Classes/Deflate.html":{"name":"Deflate","abstract":"

Provides function to decompress data, which were compressed with DEFLATE.

"},"Classes/BZip2.html":{"name":"BZip2","abstract":"

Provides function to decompress data, which were compressed using BZip2.

"},"Classes/XZArchive.html":{"name":"XZArchive","abstract":"

Provides unarchive function for XZ archives.

"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally."},"Enums.html":{"name":"Enums","abstract":"The following enums are available globally."},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally."},"Structs.html":{"name":"Structs","abstract":"The following structs are available globally."}} \ No newline at end of file +{"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16fastestAlgorithmFMS1_S1_":{"name":"fastestAlgorithm","abstract":"

Fastest algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13fastAlgorithmFMS1_S1_":{"name":"fastAlgorithm","abstract":"

Fast algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16defaultAlgorithmFMS1_S1_":{"name":"defaultAlgorithm","abstract":"

Default algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13slowAlgorithmFMS1_S1_":{"name":"slowAlgorithm","abstract":"

Slowest algorithm but with maximum compression.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionMethod.html#/s:FOV13SWCompression10ZlibHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/ZlibHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader/CompressionLevel.html":{"name":"CompressionLevel","abstract":"

Levels of compression which can be used to create zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader16compressionLevelOS0_16CompressionLevel":{"name":"compressionLevel","abstract":"

Level of compression in the archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader10windowSizeSi":{"name":"windowSize","abstract":"

Size of ‘window’: moving interval of data which was used to make the archive

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:FV13SWCompression10ZlibHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values from zlib archive presented in archiveData.

","parent_name":"ZlibHeader"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry8fileNameGSqSS_":{"name":"fileName","abstract":"

Name of the file or directory.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry11fileCommentGSqSS_":{"name":"fileComment","abstract":"

Comment associated with the entry.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry14fileAttributesVs6UInt32":{"name":"fileAttributes","abstract":"

File or directory attributes related to the file system of archive’s creator.

","parent_name":"ZipEntry"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

One of many Linux systems. (It seems like modern macOS systems also fall into this category).

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType9macintoshFMS1_S1_":{"name":"macintosh","abstract":"

Older Macintosh (Mac OS, OS X) systems.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4ntfsFMS1_S1_":{"name":"ntfs","abstract":"

File system used in Microsoft™®© Windows™®©.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType7unknownFMS1_S1_":{"name":"unknown","abstract":"

File system was unknown to the archiver.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType5otherFMS1_S1_":{"name":"other","abstract":"

File system was one of the rare systems..

","parent_name":"FileSystemType"},"Structs/GzipHeader/CompressionMethod.html#/s:FOV13SWCompression10GzipHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/GzipHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in gzip archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader/FileSystemType.html":{"name":"FileSystemType","abstract":"

Type of file system on which gzip archive was created.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

The most recent modification time of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader6osTypeOS0_14FileSystemType":{"name":"osType","abstract":"

Type of file system on which compression took place.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16originalFileNameGSqSS_":{"name":"originalFileName","abstract":"

Name of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader7commentGSqSS_":{"name":"comment","abstract":"

Comment inside the archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:FV13SWCompression10GzipHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html":{"name":"GzipHeader","abstract":"

A structure which provides information about gzip archive.

"},"Structs/ZipEntry.html":{"name":"ZipEntry","abstract":"

Represents either a file or directory entry inside ZIP archive.

"},"Structs/ZlibHeader.html":{"name":"ZlibHeader","abstract":"

A structure which provides information about zlib archive.

"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Abstract decompress function.

","parent_name":"DecompressionAlgorithm"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Abstract unarchive function.

","parent_name":"Archive"},"Protocols/Archive.html":{"name":"Archive","abstract":"

Abstract archive class which supports unarchiving.

"},"Protocols/DecompressionAlgorithm.html":{"name":"DecompressionAlgorithm","abstract":"

Abstract decompression algorithm class which supports decompression.

"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Either magic number in header or footer was not equal to predefined value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError16WrongArchiveInfoFMS0_S0_":{"name":"WrongArchiveInfo","abstract":"

One of special fields of archive had an incorrect value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18FieldReservedValueFMS0_S0_":{"name":"FieldReservedValue","abstract":"

One of special fields of archive had a reserved value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongInfoCRCFMS0_S0_":{"name":"WrongInfoCRC","abstract":"

Checksum of one of special fields of archive was incorrect.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongFilterIDFMS0_S0_":{"name":"WrongFilterID","abstract":"

ID of filter(s) used in archvie was unsupported.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15CheckTypeSHA256FMS0_S0_":{"name":"CheckTypeSHA256","abstract":"

Type of checksum of archive was SHA-256.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongDataSizeFMS0_S0_":{"name":"WrongDataSize","abstract":"

Either size of decompressed data was not equal to specified one in block header or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongCheckFMS0_FV10Foundation4DataS0_":{"name":"WrongCheck","abstract":"

Computed checksum of uncompressed data didn’t match the value stored in the archive.","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongPaddingFMS0_S0_":{"name":"WrongPadding","abstract":"

Unsupported padding of a structure in the archive.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError21MultiByteIntegerErrorFMS0_S0_":{"name":"MultiByteIntegerError","abstract":"

Either null byte encountered or exceeded maximum amount bytes during reading multi byte number.

","parent_name":"XZError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Magic number was not 0x425a.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was not type ‘h’ (not Huffman).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockSizeFMS0_S0_":{"name":"WrongBlockSize","abstract":"

Unknown block size (not from ‘0’ to ‘9’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (was neither ‘pi’ nor ‘sqrt(pi)’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error15RandomizedBlockFMS0_S0_":{"name":"RandomizedBlock","abstract":"

Block is randomized.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error18WrongHuffmanGroupsFMS0_S0_":{"name":"WrongHuffmanGroups","abstract":"

Wrong number of Huffman tables/groups (should be between 2 and 6).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error13WrongSelectorFMS0_S0_":{"name":"WrongSelector","abstract":"

Selector was greater than total number of Huffman tables/groups.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongHuffmanLengthCodeFMS0_S0_":{"name":"WrongHuffmanLengthCode","abstract":"

Wrong code of Huffman length (should be between 0 and 20).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29WrongUncompressedBlockLengthsFMS0_S0_":{"name":"WrongUncompressedBlockLengths","abstract":"

Uncompressed block’ length and nlength bytes were not compatible.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (not from 0 to 2).

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError11WrongSymbolFMS0_S0_":{"name":"WrongSymbol","abstract":"

Decoded symbol was found in Huffman tree but is unknown.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"DeflateError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20WrongCompressionInfoFMS0_S0_":{"name":"WrongCompressionInfo","abstract":"

Compression info was greater than 7 which is uncompatible number 8 compression method.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11WrongFcheckFMS0_S0_":{"name":"WrongFcheck","abstract":"

First two bytes were inconsistent with each other.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21WrongCompressionLevelFMS0_S0_":{"name":"WrongCompressionLevel","abstract":"

Compression level was other than 0, 1, 2, 3.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12WrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"WrongAdler32","abstract":"

Computed Adler-32 sum of uncompressed data didn’t match the value stored in the archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Properties byte was greater than 225.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError21RangeDecoderInitErrorFMS0_S0_":{"name":"RangeDecoderInitError","abstract":"

Unable to initialize RanderDecorer.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError24ExceededUncompressedSizeFMS0_S0_":{"name":"ExceededUncompressedSize","abstract":"

The number of uncompressed bytes hit limit in the middle of decoding.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError13WindowIsEmptyFMS0_S0_":{"name":"WindowIsEmpty","abstract":"

Unable to perfrom repeat-distance decoding because there is nothing to repeat.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError23RangeDecoderFinishErrorFMS0_S0_":{"name":"RangeDecoderFinishError","abstract":"

End of stream marker is reached, but range decoder is in incorrect state.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError16RepeatWillExceedFMS0_S0_":{"name":"RepeatWillExceed","abstract":"

The number of bytes to repeat is greater than the amount bytes that is left to decode.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError17NotEnoughToRepeatFMS0_S0_":{"name":"NotEnoughToRepeat","abstract":"

The amount of already decoded bytes is smaller than repeat length.

","parent_name":"LZMAError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27NotFoundCentralDirectoryEndFMS0_S0_":{"name":"NotFoundCentralDirectoryEnd","abstract":"

End of Central Directoty record was not found.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14WrongSignatureFMS0_S0_":{"name":"WrongSignature","abstract":"

Wrong signature of one of ZIP container’s structures.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9WrongSizeFMS0_S0_":{"name":"WrongSize","abstract":"

Wrong either compressed or uncompressed size of a ZIP container’s entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12WrongVersionFMS0_S0_":{"name":"WrongVersion","abstract":"

Wrong number of version needed to extract ZIP container.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24MultiVolumesNotSupportedFMS0_S0_":{"name":"MultiVolumesNotSupported","abstract":"

Archive either spanned or consists of several volumes. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22EncryptionNotSupportedFMS0_S0_":{"name":"EncryptionNotSupported","abstract":"

Entry or record is encrypted. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20PatchingNotSupportedFMS0_S0_":{"name":"PatchingNotSupported","abstract":"

Entry contains patched data. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23CompressionNotSupportedFMS0_S0_":{"name":"CompressionNotSupported","abstract":"

Wrong compression method of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16WrongLocalHeaderFMS0_S0_":{"name":"WrongLocalHeader","abstract":"

Wrong local header of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10WrongCRC32FMS0_S0_":{"name":"WrongCRC32","abstract":"

Wrong computed CRC32 of an entry.

","parent_name":"ZipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

First two bytes of archive were not 31 and 139.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongFlagsFMS0_S0_":{"name":"WrongFlags","abstract":"

Reserved flags bits were not equal to 0.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14WrongHeaderCRCFMS0_S0_":{"name":"WrongHeaderCRC","abstract":"

Computed CRC of header didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8WrongCRCFMS0_FV10Foundation4DataS0_":{"name":"WrongCRC","abstract":"

Computed CRC of uncompressed data didn’t match the value stored in the archive.","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongISizeFMS0_S0_":{"name":"WrongISize","abstract":"

Computed isize didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Reserved bits of LZMA2 properties byte were not equal to zero.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19WrongDictionarySizeFMS0_S0_":{"name":"WrongDictionarySize","abstract":"

Dictionary size was too big.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error16WrongControlByteFMS0_S0_":{"name":"WrongControlByte","abstract":"

Unknown conrol byte value of LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongResetFMS0_S0_":{"name":"WrongReset","abstract":"

Unknown reset instruction encounetered in LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongSizesFMS0_S0_":{"name":"WrongSizes","abstract":"

Either size of decompressed data was not equal to specified one in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

Error happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

Error happened during unarchiving gzip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

Error happened during processing ZIP archive (container)."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

Error happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

Error happened during unarchiving Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

Error happened during deflate decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

Error happened during bzip2 decompression."},"Enums/XZError.html":{"name":"XZError","abstract":"

Error happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives xz archive stored in archiveData.

","parent_name":"XZArchive"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with BZip2 algortihm.

","parent_name":"BZip2"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate8compressFzT4dataV10Foundation4Data_S2_":{"name":"compress(data:)","abstract":"

Compresses data with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives Zlib archive stored in archiveData.

","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA algortihm.

","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_":{"name":"entries","abstract":"

All file and directory entries found in ZIP archive (in its Central Directory).

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_":{"name":"init(containerData:)","abstract":"

Tries to open ZIP archive and parse its Central Directory.","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data":{"name":"data(for:)","abstract":"

Returns data associated with provided ZipEntry.

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___":{"name":"open(containerData:)","abstract":"

Processes ZIP archive (container) and returns an array of tuples (String, Data).","parent_name":"ZipContainer"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives gzip archive stored in archiveData.

","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

","parent_name":"LZMA2"},"Classes/LZMA2.html":{"name":"LZMA2","abstract":"

Provides function to decompress data, which were compressed with LZMA2

"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

Provides unarchive function for GZip archives.

"},"Classes/ZipContainer.html":{"name":"ZipContainer","abstract":"

Provides function to open ZIP archives (containers).

"},"Classes/LZMA.html":{"name":"LZMA","abstract":"

Provides function to decompress data, which were compressed with LZMA

"},"Classes/ZlibArchive.html":{"name":"ZlibArchive","abstract":"

Provides unarchive function for Zlib archives.

"},"Classes/Deflate.html":{"name":"Deflate","abstract":"

Provides function to decompress data, which were compressed with DEFLATE.

"},"Classes/BZip2.html":{"name":"BZip2","abstract":"

Provides function to decompress data, which were compressed using BZip2.

"},"Classes/XZArchive.html":{"name":"XZArchive","abstract":"

Provides unarchive function for XZ archives.

"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally."},"Enums.html":{"name":"Enums","abstract":"The following enums are available globally."},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally."},"Structs.html":{"name":"Structs","abstract":"The following structs are available globally."}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index 704c4204..1862018e 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -1,61 +1,6 @@ { "warnings": [ - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/Deflate.swift", - "line": 228, - "symbol": "Deflate.compress(data:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 50, - "symbol": "ZipEntry", - "symbol_kind": "source.lang.swift.decl.struct", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 54, - "symbol": "ZipEntry.fileName", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 58, - "symbol": "ZipEntry.fileComment", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 62, - "symbol": "ZipEntry.fileAttributes", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 77, - "symbol": "ZipContainer.entries", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 79, - "symbol": "ZipContainer.init(containerData:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/SWCompression/Sources/ZipContainer.swift", - "line": 110, - "symbol": "ZipContainer.data(for:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - } + ], "source_directory": "/Users/timofeysolomko/Developer/SWCompression" } \ No newline at end of file