diff --git a/.jazzy.yaml b/.jazzy.yaml index 04722826..2f9e5e08 100644 --- a/.jazzy.yaml +++ b/.jazzy.yaml @@ -1,12 +1,12 @@ output: docs/ clean: true exclude: Tests/ -swift_version: 3.0.2 +swift_version: 3.1 author: Timofey Solomko module: SWCompression -module_version: 2.2.2 +module_version: 2.3.0 copyright: '© 2017 Timofey Solomko' readme: README.md github_url: https://github.com/tsolomko/SWCompression -github_file_prefix: https://github.com/tsolomko/SWCompression/tree/v2.2.2 +github_file_prefix: https://github.com/tsolomko/SWCompression/tree/v2.3.0 theme: fullwidth diff --git a/.swift-version b/.swift-version index 9f55b2cc..8c50098d 100644 --- a/.swift-version +++ b/.swift-version @@ -1 +1 @@ -3.0 +3.1 diff --git a/.travis.yml b/.travis.yml index ba5af8c4..9a684433 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ language: objective-c -osx_image: xcode8.2 +osx_image: xcode8.3 xcode_project: SWCompression.xcodeproj xcode_scheme: SWCompression env: diff --git a/CHANGELOG.md b/CHANGELOG.md index d3901b5d..60620ddb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,10 @@ # Changelog +v2.3.0 +---------------- +- Improved Deflate compression performance. +- Added GZip archiving function. +- Fixed a problem when Deflate uncompressed blocks were created with one extra byte. + v2.2.2 ---------------- - Fixed problem with zero-length uncompressed blocks. diff --git a/README.md b/README.md index 97405e1c..2901fce4 100644 --- a/README.md +++ b/README.md @@ -148,7 +148,7 @@ which uses SWCompression for unarchiving several types of archives. Why is it so slow? ------------------ Version 2.0 came with a great performance improvement. -Just look at the test results at 'Tests/Test Result'. +Just look at the test results in 'Tests/Test Result'. So if it's slow the first thing you should do is to make sure you are using version >= 2.0. Is it still slow? diff --git a/SWCompression.podspec b/SWCompression.podspec index 86fcefee..a7d87105 100644 --- a/SWCompression.podspec +++ b/SWCompression.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SWCompression" - s.version = "2.2.2" + s.version = "2.3.0" s.summary = "Framework with implementations in Swift of different (de)compression algorithms" s.description = <<-DESC diff --git a/Sources/CheckSums.swift b/Sources/CheckSums.swift index 896ecd9c..1554f153 100644 --- a/Sources/CheckSums.swift +++ b/Sources/CheckSums.swift @@ -76,7 +76,7 @@ struct CheckSums { 3654703836, 1088359270, 936918000, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117] - + private static let crc64table: [UInt64] = [0, 12911341560706588527, 17619267392293085275, 5164075066763771700, 8921845837811637811, 14483170935171449180, 10328150133527543400, 4357999468653093127, 17843691675623275622, diff --git a/Sources/Deflate.swift b/Sources/Deflate.swift index 74db54e9..da62a6a8 100644 --- a/Sources/Deflate.swift +++ b/Sources/Deflate.swift @@ -9,9 +9,9 @@ import Foundation /** - Error happened during deflate decompression. + Error happened during deflate decompression. It may indicate that either the data is damaged or it might not be compressed with DEFLATE at all. - + - `WrongUncompressedBlockLengths`: `length` and `nlength` bytes of uncompressed block were not compatible. - `WrongBlockType`: unsupported block type (not 0, 1 or 2). - `WrongSymbol`: unsupported Huffman tree's symbol. @@ -31,14 +31,47 @@ public enum DeflateError: Error { /// Provides function to decompress data, which were compressed with DEFLATE. public final class Deflate: DecompressionAlgorithm { + private struct Constants { + static let codeLengthOrders: [Int] = + [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15] + + /// - Warning: Substract 257 from index! + static let lengthBase: [Int] = + [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, + 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258] + + static let distanceBase: [Int] = + [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577] + + static let lengthCode: [Int] = + [257, 258, 259, 260, 261, 262, 263, 264, 265, 265, 266, 266, 267, 267, 268, 268, + 269, 269, 269, 269, 270, 270, 270, 270, 271, 271, 271, 271, 272, 272, 272, 272, + 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, 274, 274, 274, 274, 274, 274, + 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, 276, 276, 276, 276, 276, 276, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, + 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 285] + } + /** Decompresses `compressedData` with DEFLATE algortihm. If data passed is not actually compressed with DEFLATE, `DeflateError` will be thrown. - Parameter compressedData: Data compressed with DEFLATE. - - - Throws: `DeflateError` if unexpected byte (bit) sequence was encountered in `compressedData`. + + - Throws: `DeflateError` if unexpected byte (bit) sequence was encountered in `compressedData`. It may indicate that either the data is damaged or it might not be compressed with DEFLATE at all. - Returns: Decompressed data. @@ -105,7 +138,7 @@ public final class Deflate: DecompressionAlgorithm { // Moreover, they are stored in a very specific order (defined by HuffmanTree.Constants.codeLengthOrders). var lengthsForOrder = Array(repeating: 0, count: 19) for i in 0..> 2) - 1) // Actually, nextSymbol is not a starting value of length but an index for special array of starting values. - let length = HuffmanTree.Constants.lengthBase[nextSymbol - 257] + + let length = Constants.lengthBase[nextSymbol - 257] + pointerData.intFromBits(count: extraLength) // Then we need to get distance code. @@ -186,7 +219,7 @@ public final class Deflate: DecompressionAlgorithm { // which we need to combine with distanceCode to get the actual distance. let extraDistance = distanceCode == 0 || distanceCode == 1 ? 0 : ((distanceCode >> 1) - 1) // And yes, distanceCode is not a first part of distance but rather an index for special array. - let distance = HuffmanTree.Constants.distanceBase[distanceCode] + + let distance = Constants.distanceBase[distanceCode] + pointerData.intFromBits(count: extraDistance) // We should repeat last 'distance' amount of data. @@ -283,7 +316,7 @@ public final class Deflate: DecompressionAlgorithm { // Falling back to static Huffman encoding in case of big uncompressed block is a band-aid solution. // TODO: Implement spliting uncompressed block into smaller blocks. if uncompBlockSize <= staticHuffmanBlockSize && uncompBlockSize <= 65535 { - // In case if according to our calculations static huffman will only make output data then input, + // If according to our calculations static huffman will not make output smaller than input, // we fallback to creating uncompressed block. // In this case dynamic Huffman encoding can be efficient. // TODO: Implement dynamic Huffman code! @@ -309,8 +342,6 @@ public final class Deflate: DecompressionAlgorithm { // Write data's n-length. bitWriter.write(number: bytes.count ^ (1 << 16 - 1), bitsCount: 16) - // Finishing block header. - bitWriter.finish() var out = bitWriter.buffer // Write actual data. @@ -322,7 +353,7 @@ public final class Deflate: DecompressionAlgorithm { } private static func encodeHuffmanBlock(_ bldCodes: [BLDCode]) throws -> [UInt8] { - let bitWriter = BitToByteWriter(bitOrder: .reversed) + var bitWriter = BitToByteWriter(bitOrder: .reversed) // Write block header. // Note: For now it is only static huffman blocks. @@ -339,56 +370,69 @@ public final class Deflate: DecompressionAlgorithm { let staticHuffmanBootstrap = [[0, 8], [144, 9], [256, 7], [280, 8], [288, -1]] let staticHuffmanLengthsBootstrap = [[0, 5], [32, -1]] /// Huffman tree for literal and length symbols/codes. - let mainLiterals = HuffmanTree(bootstrap: staticHuffmanBootstrap, &pointerData) + let mainLiterals = HuffmanTree(bootstrap: staticHuffmanBootstrap, &pointerData, true) /// Huffman tree for backward distance symbols/codes. - let mainDistances = HuffmanTree(bootstrap: staticHuffmanLengthsBootstrap, &pointerData) + let mainDistances = HuffmanTree(bootstrap: staticHuffmanLengthsBootstrap, &pointerData, true) for code in bldCodes { switch code { case .byte(let byte): - let codeOfByte = mainLiterals.code(symbol: byte.toInt()) - guard codeOfByte.count > 0 - else { throw DeflateError.SymbolNotFound } - bitWriter.write(bits: codeOfByte) - case .lengthDistance(let length, let distance, let lengthSymbol, let distanceSymbol): - let lengthExtra = length - HuffmanTree.Constants.lengthBase[lengthSymbol - 257] - let extraLengthBitsCount = (257 <= lengthSymbol && lengthSymbol <= 260) || lengthSymbol == 285 ? - 0 : (((lengthSymbol - 257) >> 2) - 1) + mainLiterals.code(symbol: byte.toInt(), &bitWriter) + case .lengthDistance(let ld): + mainLiterals.code(symbol: ld.lengthSymbol, &bitWriter) + bitWriter.write(number: ld.lengthExtraBits, bitsCount: ld.lengthExtraBitsCount) - let codeOfLength = mainLiterals.code(symbol: lengthSymbol) - guard codeOfLength.count > 0 - else { throw DeflateError.SymbolNotFound } - bitWriter.write(bits: codeOfLength) - bitWriter.write(number: lengthExtra, bitsCount: extraLengthBitsCount) - - let distanceExtra = distance - HuffmanTree.Constants.distanceBase[distanceSymbol] - let extraDistanceBitsCount = distanceSymbol == 0 || distanceSymbol == 1 ? 0 : ((distanceSymbol >> 1) - 1) - - let codeOfDistance = mainDistances.code(symbol: distanceSymbol) - guard codeOfDistance.count > 0 - else { throw DeflateError.SymbolNotFound } - bitWriter.write(bits: codeOfDistance) - bitWriter.write(number: distanceExtra, bitsCount: extraDistanceBitsCount) + mainDistances.code(symbol: ld.distanceSymbol, &bitWriter) + bitWriter.write(number: ld.distanceExtraBits, bitsCount: ld.distanceExtraBitsCount) } } // End data symbol. - bitWriter.write(bits: mainLiterals.code(symbol: 256)) + mainLiterals.code(symbol: 256, &bitWriter) bitWriter.finish() return bitWriter.buffer } + private struct LengthDistance { + + let length: Int + let lengthSymbol: Int + let lengthExtraBits: Int + let lengthExtraBitsCount: Int + + let distance: Int + let distanceSymbol: Int + let distanceExtraBits: Int + let distanceExtraBitsCount: Int + + init(_ length: Int, _ distance: Int) { + self.length = length + let lengthSymbol = Constants.lengthCode[length - 3] + self.lengthSymbol = lengthSymbol + self.lengthExtraBits = length - Constants.lengthBase[lengthSymbol - 257] + self.lengthExtraBitsCount = (257 <= lengthSymbol && lengthSymbol <= 260) || lengthSymbol == 285 ? + 0 : (((lengthSymbol - 257) >> 2) - 1) + + self.distance = distance + let distanceSymbol = ((Constants.distanceBase.index { $0 > distance }) ?? 30) - 1 + self.distanceSymbol = distanceSymbol + self.distanceExtraBits = distance - Constants.distanceBase[distanceSymbol] + self.distanceExtraBitsCount = distanceSymbol == 0 || distanceSymbol == 1 ? 0 : ((distanceSymbol >> 1) - 1) + } + + } + private enum BLDCode: CustomStringConvertible { case byte(UInt8) - case lengthDistance(Int, Int, Int, Int) + case lengthDistance(LengthDistance) var description: String { switch self { case .byte(let byte): return "raw symbol: \(byte)" - case .lengthDistance(let length, let distance, let lengthSymbol, let distanceSymbol): - return "length: \(length), length symbol: \(lengthSymbol), distance: \(distance), distance symbol: \(distanceSymbol)" + case .lengthDistance(let ld): + return "length: \(ld.length), length symbol: \(ld.lengthSymbol), distance: \(ld.distance), distance symbol: \(ld.distanceSymbol)" } } } @@ -399,7 +443,7 @@ public final class Deflate: DecompressionAlgorithm { var buffer: [BLDCode] = [] var inputIndex = 0 /// Keys --- three-byte crc32, values --- positions in `rawBytes`. - var dictionary = [UInt32 : Int]() + var dictionary = [UInt32: Int]() var stats = Array(repeating: 0, count: 316) @@ -445,11 +489,10 @@ public final class Deflate: DecompressionAlgorithm { repeatIndex = matchStartIndex + 1 } } - let lengthSymbol = HuffmanTree.Constants.lengthCode[matchLength - 3] - let distanceSymbol = ((HuffmanTree.Constants.distanceBase.index { $0 > distance }) ?? 30) - 1 - buffer.append(BLDCode.lengthDistance(matchLength, distance, lengthSymbol, distanceSymbol)) - stats[lengthSymbol] += 1 - stats[286 + distanceSymbol] += 1 + let ld = LengthDistance(matchLength, distance) + buffer.append(BLDCode.lengthDistance(ld)) + stats[ld.lengthSymbol] += 1 + stats[286 + ld.distanceSymbol] += 1 inputIndex += matchLength } else { buffer.append(BLDCode.byte(byte)) diff --git a/Sources/GzipArchive.swift b/Sources/GzipArchive.swift index 13693e31..a81719ac 100644 --- a/Sources/GzipArchive.swift +++ b/Sources/GzipArchive.swift @@ -72,6 +72,7 @@ public struct GzipHeader { /// Compression method of archive. Always equals to `.deflate`. public let compressionMethod: CompressionMethod + // TODO: Make it optional. /// The most recent modification time of the original file. public let modificationTime: Date /// Type of file system on which compression took place. @@ -118,6 +119,7 @@ public struct GzipHeader { for i in 0..<4 { headerBytes.append(((mtime & (0xFF << (i * 8))) >> (i * 8)).toUInt8()) } + // TODO: Should be nil in case of mtime == 0. self.modificationTime = Date(timeIntervalSince1970: TimeInterval(mtime)) let extraFlags = pointerData.alignedByte() @@ -218,4 +220,49 @@ public final class GzipArchive: Archive { return Data(bytes: out) } + /** + Archives `data` into GZip archive. Data will be also compressed with DEFLTATE algorithm. + Fields in the header of the resulting archive will be set to default values + (i.e. no mtime, no flags, no file name, unknown OS type). + It will be also specified that the compressor used slowest DEFLATE algorithm. + + If during compression something goes wrong `DeflateError` will be thrown. + + - Note: This function is specification compliant. + + - Parameter data: Data to compress and archive. + + - Throws: `DeflateError` if an error was encountered during compression. + + - Returns: Data object with resulting archive. + */ + public static func archive(data: Data) throws -> Data { + let out: [UInt8] = [ + 0x1f, 0x8b, // 'magic' bytes. + 8, // Compression method (DEFLATE). + 0, // Flags; currently no flags are set. + 0, 0, 0, 0, // Mtime; currently timestamp is not set. + 2, // Extra flags; 2 means that DEFLATE used slowest algorithm. + 255, // OS Type; set to default value (unknown). + ] + var outData = Data(bytes: out) + outData.append(try Deflate.compress(data: data)) + + let crc32 = CheckSums.crc32(data.toArray(type: UInt8.self)) + var crcBytes = [UInt8]() + for i: UInt32 in 0..<4 { + crcBytes.append(UInt8((crc32 & (0xFF << (i * 8))) >> (i * 8))) + } + outData.append(Data(bytes: crcBytes)) + + let isize = UInt64(data.count) % UInt64(1) << 32 + var isizeBytes = [UInt8]() + for i: UInt64 in 0..<4 { + isizeBytes.append(UInt8((isize & (0xFF << (i * 8))) >> (i * 8))) + } + outData.append(Data(bytes: isizeBytes)) + + return outData + } + } diff --git a/Sources/HuffmanTree.swift b/Sources/HuffmanTree.swift index 1b79083e..03baaa65 100644 --- a/Sources/HuffmanTree.swift +++ b/Sources/HuffmanTree.swift @@ -10,46 +10,20 @@ import Foundation class HuffmanTree { - struct Constants { - static let codeLengthOrders: [Int] = - [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15] - - /// - Warning: Substract 257 from index! - static let lengthBase: [Int] = - [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, - 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258] - - static let distanceBase: [Int] = - [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577] - - static let lengthCode: [Int] = - [257, 258, 259, 260, 261, 262, 263, 264, 265, 265, 266, 266, 267, 267, 268, 268, - 269, 269, 269, 269, 270, 270, 270, 270, 271, 271, 271, 271, 272, 272, 272, 272, - 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, 274, 274, 274, 274, 274, 274, - 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, 276, 276, 276, 276, 276, 276, - 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, - 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, - 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 285] + private enum HTNode { + case leaf(Int) + case branch(Set) } private var pointerData: DataWithPointer - /// Array of [code, bitsCount] arrays. - private var tree: [[Int]] + private var tree: [HTNode] private let leafCount: Int - init(bootstrap: [[Int]], _ pointerData: inout DataWithPointer) { + private let coding: Bool + + init(bootstrap: [[Int]], _ pointerData: inout DataWithPointer, _ coding: Bool = false) { + self.coding = coding self.pointerData = pointerData // Fills the 'lengths' array with numerous HuffmanLengths from a 'bootstrap'. @@ -92,8 +66,7 @@ class HuffmanTree { // Calculate maximum amount of leaves possible in a tree. self.leafCount = 1 << (lengths.last![1] + 1) - // Create a tree (array, actually) with all leaves equal nil. - self.tree = Array(repeating: [-1, -1], count: leafCount) + self.tree = Array(repeating: .leaf(-1), count: leafCount) // Calculates symbols for each length in 'lengths' array and put them in the tree. var loopBits = -1 @@ -115,7 +88,46 @@ class HuffmanTree { index = bit == 0 ? 2 * index + 1 : 2 * index + 2 treeCode >>= 1 } - self.tree[index] = length + self.tree[index] = .leaf(length[0]) + } + + if coding { + for treeIndex in stride(from: self.leafCount - 1, through: 0, by: -1) { + switch self.tree[treeIndex] { + case .leaf(let symbol): + if symbol == -1 { + var replacementArray = Set() + + let leftChildIndex = 2 * treeIndex + 1 + if leftChildIndex < self.leafCount { + switch self.tree[leftChildIndex] { + case .leaf(let leftSymbol): + replacementArray.insert(leftSymbol) + case .branch(let leftArray): + for leftChild in leftArray { + replacementArray.insert(leftChild) + } + } + } + + let rightChildIndex = 2 * treeIndex + 2 + if rightChildIndex < self.leafCount { + switch self.tree[rightChildIndex] { + case .leaf(let rightSymbol): + replacementArray.insert(rightSymbol) + case .branch(let rightArray): + for rightChild in rightArray { + replacementArray.insert(rightChild) + } + } + } + + self.tree[treeIndex] = .branch(replacementArray) + } + default: + continue + } + } } } @@ -133,29 +145,74 @@ class HuffmanTree { let bit = pointerData.bit() index = bit == 0 ? 2 * index + 1 : 2 * index + 2 guard index < self.leafCount else { return -1 } - if self.tree[index][0] > -1 { - return self.tree[index][0] + switch self.tree[index] { + case .leaf(let symbol): + if symbol > -1 { + return symbol + } + default: + continue } } } - func code(symbol: Int) -> [UInt8] { - if var symbolIndex = self.tree.index(where: { $0[0] == symbol }) { - var bits: [UInt8] = Array(repeating: 0, count: self.tree[symbolIndex][1]) - var i = bits.count - 1 - while symbolIndex > 0 { - if symbolIndex % 2 == 0 { - bits[i] = 1 - symbolIndex /= 2 - symbolIndex -= 1 + func code(symbol: Int, _ bitWriter: inout BitToByteWriter) { + guard self.coding else { fatalError("Tree is not coding, this error should be replaced with Error.") } + + var index = 0 + while true { + switch self.tree[index] { + case .leaf(let foundSymbol): + if foundSymbol == symbol { + return } else { - symbolIndex /= 2 + fatalError("Symbol not found, this error should be replaced with Error.") + } + case .branch(_): + let leftChildIndex = 2 * index + 1 + if leftChildIndex < self.leafCount { + switch self.tree[leftChildIndex] { + case .leaf(let foundLeftSymbol): + if foundLeftSymbol == symbol { + index = leftChildIndex + bitWriter.write(bit: 0) + continue + } else { + break + } + case .branch(let leftArray): + if leftArray.contains(symbol) { + index = leftChildIndex + bitWriter.write(bit: 0) + continue + } else { + break + } + } + } + + let rightChildIndex = 2 * index + 2 + if rightChildIndex < self.leafCount { + switch self.tree[rightChildIndex] { + case .leaf(let foundRightSymbol): + if foundRightSymbol == symbol { + index = rightChildIndex + bitWriter.write(bit: 1) + continue + } else { + fatalError("Symbol not found, this error should be replaced with Error.") + } + case .branch(let rightArray): + if rightArray.contains(symbol) { + index = rightChildIndex + bitWriter.write(bit: 1) + continue + } else { + fatalError("Symbol not found, this error should be replaced with Error.") + } + } } - i -= 1 } - return bits - } else { - return [] } } diff --git a/Sources/Service/Info-iOS.plist b/Sources/Service/Info-iOS.plist index afd586d0..c9541bc3 100644 --- a/Sources/Service/Info-iOS.plist +++ b/Sources/Service/Info-iOS.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.2.2 + 2.3.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass diff --git a/Sources/Service/Info-tvOS.plist b/Sources/Service/Info-tvOS.plist index afd586d0..c9541bc3 100644 --- a/Sources/Service/Info-tvOS.plist +++ b/Sources/Service/Info-tvOS.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.2.2 + 2.3.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass diff --git a/Sources/Service/Info-watchOS.plist b/Sources/Service/Info-watchOS.plist index afd586d0..c9541bc3 100644 --- a/Sources/Service/Info-watchOS.plist +++ b/Sources/Service/Info-watchOS.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.2.2 + 2.3.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSPrincipalClass diff --git a/Sources/Service/Info.plist b/Sources/Service/Info.plist index d58d8560..7a80bb12 100644 --- a/Sources/Service/Info.plist +++ b/Sources/Service/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.2.2 + 2.3.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) NSHumanReadableCopyright diff --git a/Tests/GzipTests.swift b/Tests/GzipTests.swift index 6d1a6afa..78d68e80 100644 --- a/Tests/GzipTests.swift +++ b/Tests/GzipTests.swift @@ -97,4 +97,52 @@ class GzipTests: XCTestCase { XCTAssertEqual(decompressedData, answerData, "Decompression was incorrect") } + func perform(createTest testName: String) { + guard let testData = try? Data(contentsOf: Constants.url(forAnswer: testName), + options: .mappedIfSafe) else { + XCTFail("Failed to load test data.") + return + } + + guard let archiveData = try? GzipArchive.archive(data: testData) else { + XCTFail("Unable to create archive.") + return + } + + guard let reextractedData = try? GzipArchive.unarchive(archiveData: archiveData) else { + XCTFail("Unable to re-extract created archive.") + return + } + + XCTAssertEqual(testData, reextractedData, "Re-extracted data is not equal to initial data.") + } + + func testCreateGzip1() { + self.perform(createTest: "test1") + } + + func testCreateGzip2() { + self.perform(createTest: "test2") + } + + func testCreateGzip3() { + self.perform(createTest: "test3") + } + + func testCreateGzip4() { + self.perform(createTest: "test4") + } + + func testCreateGzip5() { + self.perform(createTest: "test5") + } + + func testCreateGzip6() { + self.perform(createTest: "test6") + } + +// func testCreateGzip7() { +// self.perform(createTest: "test7") +// } + } diff --git a/Tests/Results/debug_2_3_0 b/Tests/Results/debug_2_3_0 new file mode 100644 index 00000000..3357884b --- /dev/null +++ b/Tests/Results/debug_2_3_0 @@ -0,0 +1,26 @@ +bz2.test1 average: 0.002 +bz2.test2 average: 0.365 +bz2.test3 average: 0.153 +bz2.test4 average: 0.148 +bz2.test5 average: 0.000 +bz2.test6 average: 7.391 +deflate.test1 average: 0.004 +deflate.test2 average: 0.032 +deflate.test3 average: 0.023 +deflate.test4 average: 0.005 +deflate.test5 average: 0.000 +deflate.test6 average: 0.894 +undeflate.test1 average: 0.001 +undeflate.test2 average: 0.006 +undeflate.test3 average: 0.005 +undeflate.test4 average: 0.002 +undeflate.test5 average: 0.002 +undeflate.test6 average: 0.337 +undeflate.test7 average: 0.487 +xz.test1 average: 0.009 +xz.test2 average: 0.015 +xz.test3 average: 0.015 +xz.test4 average: 0.009 +xz.test5 average: 0.000 +xz.test6 average: 0.696 +xz.test7 average: 1.025 diff --git a/Tests/Results/release_2_3_0 b/Tests/Results/release_2_3_0 new file mode 100644 index 00000000..7dd9c1b6 --- /dev/null +++ b/Tests/Results/release_2_3_0 @@ -0,0 +1,28 @@ +bz2.test1 average: 0.000 +bz2.test2 average: 0.003 +bz2.test3 average: 0.002 +bz2.test4 average: 0.001 +bz2.test5 average: 0.000 +bz2.test6 average: 0.053 +bz2.test7 average: 2.430 +deflate.test1 average: 0.001 +deflate.test2 average: 0.002 +deflate.test3 average: 0.003 +deflate.test4 average: 0.001 +deflate.test5 average: 0.000 +deflate.test6 average: 0.029 +deflate.test7 average: 3.174 +undeflate.test1 average: 0.001 +undeflate.test2 average: 0.001 +undeflate.test3 average: 0.001 +undeflate.test4 average: 0.001 +undeflate.test5 average: 0.001 +undeflate.test6 average: 0.024 +undeflate.test7 average: 0.042 +xz.test1 average: 0.004 +xz.test2 average: 0.005 +xz.test3 average: 0.005 +xz.test4 average: 0.004 +xz.test5 average: 0.000 +xz.test6 average: 0.076 +xz.test7 average: 0.152 diff --git a/docs/Classes.html b/docs/Classes.html index 05128f84..4c3cfed6 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -186,7 +186,7 @@ @@ -221,7 +221,7 @@ @@ -256,7 +256,7 @@ @@ -291,7 +291,7 @@ @@ -326,7 +326,7 @@ @@ -361,7 +361,7 @@ @@ -396,7 +396,7 @@ @@ -431,7 +431,7 @@ @@ -445,7 +445,7 @@ diff --git a/docs/Classes/BZip2.html b/docs/Classes/BZip2.html index 0ef1a13a..3d11357f 100644 --- a/docs/Classes/BZip2.html +++ b/docs/Classes/BZip2.html @@ -226,7 +226,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -240,7 +240,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/Classes/Deflate.html b/docs/Classes/Deflate.html index 3531daef..91a7ecb2 100644 --- a/docs/Classes/Deflate.html +++ b/docs/Classes/Deflate.html @@ -186,7 +186,7 @@

Throws

-

DeflateError if unexpected byte (bit) sequence was encountered in compressedData. +

DeflateError if unexpected byte (bit) sequence was encountered in compressedData. It may indicate that either the data is damaged or it might not be compressed with DEFLATE at all.

@@ -226,7 +226,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -267,7 +267,7 @@ static Huffman is used in all other cases. @@ -281,7 +281,7 @@ static Huffman is used in all other cases. diff --git a/docs/Classes/GzipArchive.html b/docs/Classes/GzipArchive.html index 60896343..d9b43c3a 100644 --- a/docs/Classes/GzipArchive.html +++ b/docs/Classes/GzipArchive.html @@ -234,7 +234,79 @@ It may indicate that either the data is damaged or it might not be compressed wi + + + +
  • +
    + + + + archive(data:) + +
    +
    +
    +
    +
    +
    +

    Archives data into GZip archive. Data will be also compressed with DEFLTATE algorithm. +Fields in the header of the resulting archive will be set to default values +(i.e. no mtime, no flags, no file name, unknown OS type). +It will be also specified that the compressor used slowest DEFLATE algorithm.

    + +

    If during compression something goes wrong DeflateError will be thrown.

    + +
    +

    Note

    +

    This function is specification compliant.

    + +
    + +
    +

    Throws

    +

    DeflateError if an error was encountered during compression.

    + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func archive(data: Data) throws -> Data
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + data + + +
    +

    Data to compress and archive.

    + +
    +
    +
    +
    +

    Return Value

    +

    Data object with resulting archive.

    + +
    +
    @@ -248,7 +320,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/Classes/LZMA.html b/docs/Classes/LZMA.html index 94d7a4cb..b14b5927 100644 --- a/docs/Classes/LZMA.html +++ b/docs/Classes/LZMA.html @@ -226,7 +226,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -240,7 +240,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/Classes/LZMA2.html b/docs/Classes/LZMA2.html index 8261a9b3..2d739d6d 100644 --- a/docs/Classes/LZMA2.html +++ b/docs/Classes/LZMA2.html @@ -226,7 +226,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -240,7 +240,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/Classes/XZArchive.html b/docs/Classes/XZArchive.html index 06326085..99f21bda 100644 --- a/docs/Classes/XZArchive.html +++ b/docs/Classes/XZArchive.html @@ -230,7 +230,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -244,7 +244,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/Classes/ZipContainer.html b/docs/Classes/ZipContainer.html index 5e3fd8ae..e1189456 100644 --- a/docs/Classes/ZipContainer.html +++ b/docs/Classes/ZipContainer.html @@ -192,7 +192,7 @@ @@ -272,7 +272,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont @@ -336,7 +336,7 @@ An error can indicate that the container is damaged.

    @@ -421,7 +421,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont @@ -435,7 +435,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont diff --git a/docs/Classes/ZlibArchive.html b/docs/Classes/ZlibArchive.html index d456168f..093a3291 100644 --- a/docs/Classes/ZlibArchive.html +++ b/docs/Classes/ZlibArchive.html @@ -234,7 +234,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -248,7 +248,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/Enums.html b/docs/Enums.html index 5f8e95b8..699f7e8c 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -195,7 +195,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -242,7 +242,7 @@ Associated value contains already decompressed data.
  • @@ -292,7 +292,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -341,7 +341,7 @@ than the repeat length. @@ -386,7 +386,7 @@ Associated value contains already decompressed data. @@ -408,7 +408,7 @@ Associated value contains already decompressed data.
    -

    Error happened during deflate decompression. +

    Error happened during deflate decompression. It may indicate that either the data is damaged or it might not be compressed with DEFLATE at all.

      @@ -429,7 +429,7 @@ It may indicate that either the data is damaged or it might not be compressed wi
    @@ -477,7 +477,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -528,7 +528,7 @@ Associated value contains already decompressed data. @@ -542,7 +542,7 @@ Associated value contains already decompressed data. diff --git a/docs/Enums/BZip2Error.html b/docs/Enums/BZip2Error.html index 3cc0e24d..27a6397c 100644 --- a/docs/Enums/BZip2Error.html +++ b/docs/Enums/BZip2Error.html @@ -205,7 +205,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -239,7 +239,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -273,7 +273,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -307,7 +307,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -341,7 +341,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -375,7 +375,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -409,7 +409,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -443,7 +443,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -477,7 +477,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -491,7 +491,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/Enums/DeflateError.html b/docs/Enums/DeflateError.html index 4989b3d3..08506de5 100644 --- a/docs/Enums/DeflateError.html +++ b/docs/Enums/DeflateError.html @@ -158,7 +158,7 @@ -

    Error happened during deflate decompression. +

    Error happened during deflate decompression. It may indicate that either the data is damaged or it might not be compressed with DEFLATE at all.

    + +
    + +
    • @@ -284,7 +295,7 @@
    @@ -314,7 +325,7 @@ @@ -344,7 +355,7 @@ @@ -374,7 +385,7 @@ @@ -433,7 +444,7 @@ it might not be compressed with gzip at all.

    @@ -447,7 +458,7 @@ it might not be compressed with gzip at all.

    diff --git a/docs/Structs/GzipHeader/CompressionMethod.html b/docs/Structs/GzipHeader/CompressionMethod.html index 49bb5290..fb65895c 100644 --- a/docs/Structs/GzipHeader/CompressionMethod.html +++ b/docs/Structs/GzipHeader/CompressionMethod.html @@ -192,7 +192,7 @@ @@ -206,7 +206,7 @@ diff --git a/docs/Structs/GzipHeader/FileSystemType.html b/docs/Structs/GzipHeader/FileSystemType.html index 84f3f27f..ebfa2d98 100644 --- a/docs/Structs/GzipHeader/FileSystemType.html +++ b/docs/Structs/GzipHeader/FileSystemType.html @@ -192,7 +192,7 @@ @@ -226,7 +226,7 @@ @@ -260,7 +260,7 @@ @@ -294,7 +294,7 @@ @@ -328,7 +328,7 @@ @@ -342,7 +342,7 @@ diff --git a/docs/Structs/ZipEntry.html b/docs/Structs/ZipEntry.html index bb419ab9..4b2d2f63 100644 --- a/docs/Structs/ZipEntry.html +++ b/docs/Structs/ZipEntry.html @@ -192,7 +192,7 @@ @@ -222,7 +222,7 @@ @@ -252,7 +252,7 @@ @@ -266,7 +266,7 @@ diff --git a/docs/Structs/ZlibHeader.html b/docs/Structs/ZlibHeader.html index 8faabf88..f01ffc81 100644 --- a/docs/Structs/ZlibHeader.html +++ b/docs/Structs/ZlibHeader.html @@ -193,7 +193,7 @@ @@ -224,7 +224,7 @@ @@ -254,7 +254,7 @@ @@ -284,7 +284,7 @@ @@ -314,7 +314,7 @@ @@ -373,7 +373,7 @@ it might not be compressed with zlib at all.

    @@ -387,7 +387,7 @@ it might not be compressed with zlib at all.

    diff --git a/docs/Structs/ZlibHeader/CompressionLevel.html b/docs/Structs/ZlibHeader/CompressionLevel.html index 32dd249a..2f7661f3 100644 --- a/docs/Structs/ZlibHeader/CompressionLevel.html +++ b/docs/Structs/ZlibHeader/CompressionLevel.html @@ -192,7 +192,7 @@ @@ -226,7 +226,7 @@ @@ -260,7 +260,7 @@ @@ -294,7 +294,7 @@ @@ -308,7 +308,7 @@ diff --git a/docs/Structs/ZlibHeader/CompressionMethod.html b/docs/Structs/ZlibHeader/CompressionMethod.html index f40c5815..47a8f020 100644 --- a/docs/Structs/ZlibHeader/CompressionMethod.html +++ b/docs/Structs/ZlibHeader/CompressionMethod.html @@ -192,7 +192,7 @@ @@ -206,7 +206,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html index 05128f84..4c3cfed6 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html @@ -186,7 +186,7 @@ @@ -221,7 +221,7 @@ @@ -256,7 +256,7 @@ @@ -291,7 +291,7 @@ @@ -326,7 +326,7 @@ @@ -361,7 +361,7 @@ @@ -396,7 +396,7 @@ @@ -431,7 +431,7 @@ @@ -445,7 +445,7 @@ 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 0ef1a13a..3d11357f 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html @@ -226,7 +226,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -240,7 +240,7 @@ It may indicate that either the data is damaged or it might not be compressed wi 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 3531daef..91a7ecb2 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html @@ -186,7 +186,7 @@

    Throws

    -

    DeflateError if unexpected byte (bit) sequence was encountered in compressedData. +

    DeflateError if unexpected byte (bit) sequence was encountered in compressedData. It may indicate that either the data is damaged or it might not be compressed with DEFLATE at all.

    @@ -226,7 +226,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -267,7 +267,7 @@ static Huffman is used in all other cases. @@ -281,7 +281,7 @@ static Huffman is used in all other cases. 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 60896343..d9b43c3a 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html @@ -234,7 +234,79 @@ It may indicate that either the data is damaged or it might not be compressed wi + + + +
  • +
    + + + + archive(data:) + +
    +
    +
    +
    +
    +
    +

    Archives data into GZip archive. Data will be also compressed with DEFLTATE algorithm. +Fields in the header of the resulting archive will be set to default values +(i.e. no mtime, no flags, no file name, unknown OS type). +It will be also specified that the compressor used slowest DEFLATE algorithm.

    + +

    If during compression something goes wrong DeflateError will be thrown.

    + +
    +

    Note

    +

    This function is specification compliant.

    + +
    + +
    +

    Throws

    +

    DeflateError if an error was encountered during compression.

    + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public static func archive(data: Data) throws -> Data
    + +
    +
    +
    +

    Parameters

    + + + + + + + +
    + + data + + +
    +

    Data to compress and archive.

    + +
    +
    +
    +
    +

    Return Value

    +

    Data object with resulting archive.

    + +
    +
    @@ -248,7 +320,7 @@ It may indicate that either the data is damaged or it might not be compressed wi 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 94d7a4cb..b14b5927 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html @@ -226,7 +226,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -240,7 +240,7 @@ It may indicate that either the data is damaged or it might not be compressed wi 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 8261a9b3..2d739d6d 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html @@ -226,7 +226,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -240,7 +240,7 @@ It may indicate that either the data is damaged or it might not be compressed wi 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 06326085..99f21bda 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html @@ -230,7 +230,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -244,7 +244,7 @@ It may indicate that either the data is damaged or it might not be compressed wi 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 5e3fd8ae..e1189456 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html @@ -192,7 +192,7 @@ @@ -272,7 +272,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont @@ -336,7 +336,7 @@ An error can indicate that the container is damaged.

    @@ -421,7 +421,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont @@ -435,7 +435,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont 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 d456168f..093a3291 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html @@ -234,7 +234,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -248,7 +248,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html index 5f8e95b8..699f7e8c 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html @@ -195,7 +195,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -242,7 +242,7 @@ Associated value contains already decompressed data.
  • @@ -292,7 +292,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -341,7 +341,7 @@ than the repeat length. @@ -386,7 +386,7 @@ Associated value contains already decompressed data. @@ -408,7 +408,7 @@ Associated value contains already decompressed data.
    -

    Error happened during deflate decompression. +

    Error happened during deflate decompression. It may indicate that either the data is damaged or it might not be compressed with DEFLATE at all.

      @@ -429,7 +429,7 @@ It may indicate that either the data is damaged or it might not be compressed wi
    @@ -477,7 +477,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -528,7 +528,7 @@ Associated value contains already decompressed data. @@ -542,7 +542,7 @@ Associated value contains already decompressed data. 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 3cc0e24d..27a6397c 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html @@ -205,7 +205,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -239,7 +239,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -273,7 +273,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -307,7 +307,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -341,7 +341,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -375,7 +375,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -409,7 +409,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -443,7 +443,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -477,7 +477,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -491,7 +491,7 @@ It may indicate that either the data is damaged or it might not be compressed wi 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 4989b3d3..08506de5 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html @@ -158,7 +158,7 @@ -

    Error happened during deflate decompression. +

    Error happened during deflate decompression. It may indicate that either the data is damaged or it might not be compressed with DEFLATE at all.

      @@ -200,7 +200,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -234,7 +234,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -268,7 +268,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -302,7 +302,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -316,7 +316,7 @@ It may indicate that either the data is damaged or it might not be compressed wi 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 f204204e..8ec66305 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html @@ -204,7 +204,7 @@ Associated value contains already decompressed data. @@ -238,7 +238,7 @@ Associated value contains already decompressed data. @@ -272,7 +272,7 @@ Associated value contains already decompressed data. @@ -306,7 +306,7 @@ Associated value contains already decompressed data. @@ -341,7 +341,7 @@ Associated value contains already decompressed data.

      @@ -375,7 +375,7 @@ Associated value contains already decompressed data.

      @@ -389,7 +389,7 @@ Associated value contains already decompressed data.

      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 0c14f8be..9f6f72db 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html @@ -201,7 +201,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -235,7 +235,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -269,7 +269,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -303,7 +303,7 @@ It may indicate that either the data is damaged or it might not be compressed wi @@ -338,7 +338,7 @@ amount of compressed data read was different from the one stored in LZMA2 packet @@ -352,7 +352,7 @@ amount of compressed data read was different from the one stored in LZMA2 packet 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 cfe77f7d..995cb08b 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html @@ -206,7 +206,7 @@ than the repeat length. @@ -240,7 +240,7 @@ than the repeat length. @@ -274,7 +274,7 @@ than the repeat length. @@ -308,7 +308,7 @@ than the repeat length. @@ -342,7 +342,7 @@ than the repeat length. @@ -376,7 +376,7 @@ than the repeat length. @@ -410,7 +410,7 @@ than the repeat length. @@ -424,7 +424,7 @@ than the repeat length. 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 164c59a5..16f3b98f 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html @@ -208,7 +208,7 @@ Associated value contains already decompressed data. @@ -242,7 +242,7 @@ Associated value contains already decompressed data. @@ -276,7 +276,7 @@ Associated value contains already decompressed data. @@ -310,7 +310,7 @@ Associated value contains already decompressed data. @@ -344,7 +344,7 @@ Associated value contains already decompressed data. @@ -378,7 +378,7 @@ Associated value contains already decompressed data. @@ -413,7 +413,7 @@ amount of compressed data read was different from the one stored in block header @@ -448,7 +448,7 @@ Associated value contains already decompressed data.

      @@ -482,7 +482,7 @@ Associated value contains already decompressed data.

      @@ -516,7 +516,7 @@ Associated value contains already decompressed data.

      @@ -530,7 +530,7 @@ Associated value contains already decompressed data.

      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 bb7fe84d..f4993d66 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html @@ -207,7 +207,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -241,7 +241,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -275,7 +275,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -309,7 +309,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -343,7 +343,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -377,7 +377,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -411,7 +411,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -445,7 +445,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -479,7 +479,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -513,7 +513,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( @@ -527,7 +527,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( 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 6e78cec8..8e10544b 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html @@ -202,7 +202,7 @@ Associated value contains already decompressed data. @@ -236,7 +236,7 @@ Associated value contains already decompressed data. @@ -270,7 +270,7 @@ Associated value contains already decompressed data. @@ -304,7 +304,7 @@ Associated value contains already decompressed data. @@ -339,7 +339,7 @@ Associated value contains already decompressed data.

      @@ -353,7 +353,7 @@ Associated value contains already decompressed data.

      diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html index 6155ebab..b7e952bf 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html @@ -186,7 +186,7 @@ @@ -217,7 +217,7 @@ @@ -231,7 +231,7 @@ 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 5ff200ed..8ceb621a 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html @@ -192,7 +192,7 @@ @@ -206,7 +206,7 @@ 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 34164d18..44ce6162 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html @@ -192,7 +192,7 @@ @@ -206,7 +206,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html index 7dd5b2f8..c97237e0 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html @@ -186,7 +186,7 @@ @@ -221,7 +221,7 @@ @@ -256,7 +256,7 @@ @@ -270,7 +270,7 @@ 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 f6bad7bd..8ba2e1b8 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html @@ -193,7 +193,7 @@ @@ -224,7 +224,7 @@ @@ -254,11 +254,22 @@ +
    + +
    + +
    • @@ -284,7 +295,7 @@
    @@ -314,7 +325,7 @@ @@ -344,7 +355,7 @@ @@ -374,7 +385,7 @@ @@ -433,7 +444,7 @@ it might not be compressed with gzip at all.

    @@ -447,7 +458,7 @@ it might not be compressed with gzip at all.

    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 49bb5290..fb65895c 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 @@ -192,7 +192,7 @@ @@ -206,7 +206,7 @@ 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 84f3f27f..ebfa2d98 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 @@ -192,7 +192,7 @@ @@ -226,7 +226,7 @@ @@ -260,7 +260,7 @@ @@ -294,7 +294,7 @@ @@ -328,7 +328,7 @@ @@ -342,7 +342,7 @@ 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 bb419ab9..4b2d2f63 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html @@ -192,7 +192,7 @@ @@ -222,7 +222,7 @@ @@ -252,7 +252,7 @@ @@ -266,7 +266,7 @@ 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 8faabf88..f01ffc81 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html @@ -193,7 +193,7 @@ @@ -224,7 +224,7 @@ @@ -254,7 +254,7 @@ @@ -284,7 +284,7 @@ @@ -314,7 +314,7 @@ @@ -373,7 +373,7 @@ it might not be compressed with zlib at all.

    @@ -387,7 +387,7 @@ it might not be compressed with zlib at all.

    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 32dd249a..2f7661f3 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 @@ -192,7 +192,7 @@ @@ -226,7 +226,7 @@ @@ -260,7 +260,7 @@ @@ -294,7 +294,7 @@ @@ -308,7 +308,7 @@ 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 f40c5815..47a8f020 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 @@ -192,7 +192,7 @@ @@ -206,7 +206,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html index cc3db426..ce7d301e 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html @@ -304,7 +304,7 @@ which uses SWCompression for unarchiving several types of archives.

    Why is it so slow?

    Version 2.0 came with a great performance improvement. -Just look at the test results at ‘Tests/Test Result’. +Just look at the test results in ‘Tests/Test Result’. So if it’s slow the first thing you should do is to make sure you are using version >= 2.0.

    Is it still slow? @@ -346,7 +346,7 @@ so some difference in speed is expected.

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json index 962b7790..0ea4f616 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":"

    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 +{"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/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

    Archives data into GZip archive. Data will be also compressed with DEFLTATE algorithm.","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/docSet.dsidx b/docs/docsets/SWCompression.docset/Contents/Resources/docSet.dsidx index 69588ea6..8850b692 100644 Binary files a/docs/docsets/SWCompression.docset/Contents/Resources/docSet.dsidx and b/docs/docsets/SWCompression.docset/Contents/Resources/docSet.dsidx differ diff --git a/docs/docsets/SWCompression.tgz b/docs/docsets/SWCompression.tgz index 459c8630..545ab527 100644 Binary files a/docs/docsets/SWCompression.tgz and b/docs/docsets/SWCompression.tgz differ diff --git a/docs/index.html b/docs/index.html index cc3db426..ce7d301e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -304,7 +304,7 @@ which uses SWCompression for unarchiving several types of archives.

    Why is it so slow?

    Version 2.0 came with a great performance improvement. -Just look at the test results at ‘Tests/Test Result’. +Just look at the test results in ‘Tests/Test Result’. So if it’s slow the first thing you should do is to make sure you are using version >= 2.0.

    Is it still slow? @@ -346,7 +346,7 @@ so some difference in speed is expected.

    diff --git a/docs/search.json b/docs/search.json index 962b7790..0ea4f616 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":"

    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 +{"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/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

    Archives data into GZip archive. Data will be also compressed with DEFLTATE algorithm.","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