From cd832f6f1ef473d95e5a769ddd58a8769eba91c0 Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Mon, 3 Jul 2017 14:37:48 +0300 Subject: [PATCH] Rebuilt documentation. --- .../Documents/Structs.html => Archives.html} | 193 ++++++-- docs/Classes/BZip2.html | 85 ++-- docs/Classes/Deflate.html | 85 ++-- docs/Classes/GzipArchive.html | 140 ++++-- docs/Classes/GzipArchive/Member.html | 117 +++-- docs/Classes/LZMA.html | 85 ++-- docs/Classes/LZMA2.html | 85 ++-- docs/Classes/TarContainer.html | 85 ++-- docs/Classes/TarEntry.html | 87 ++-- docs/Classes/TarEntry/EntryType.html | 85 ++-- docs/Classes/XZArchive.html | 129 ++++-- docs/Classes/ZipContainer.html | 85 ++-- docs/Classes/ZipEntry.html | 87 ++-- docs/Classes/ZlibArchive.html | 85 ++-- docs/{Classes.html => Compression.html} | 375 +++------------- docs/Containers.html | 329 ++++++++++++++ docs/Enums/BZip2Error.html | 85 ++-- docs/Enums/DeflateError.html | 85 ++-- docs/Enums/GzipError.html | 85 ++-- docs/Enums/LZMA2Error.html | 85 ++-- docs/Enums/LZMAError.html | 85 ++-- docs/Enums/TarError.html | 85 ++-- docs/Enums/XZError.html | 85 ++-- docs/Enums/ZipError.html | 85 ++-- docs/Enums/ZlibError.html | 85 ++-- docs/{Enums.html => Errors.html} | 416 +++++++++--------- docs/Protocols.html | 152 +++---- docs/Protocols/Archive.html | 85 ++-- docs/Protocols/Container.html | 85 ++-- docs/Protocols/ContainerEntry.html | 123 ++++-- docs/Protocols/DecompressionAlgorithm.html | 85 ++-- docs/Structs/GzipHeader.html | 85 ++-- .../Structs/GzipHeader/CompressionMethod.html | 85 ++-- docs/Structs/GzipHeader/FileSystemType.html | 85 ++-- docs/Structs/ZlibHeader.html | 85 ++-- docs/Structs/ZlibHeader/CompressionLevel.html | 85 ++-- .../Structs/ZlibHeader/CompressionMethod.html | 85 ++-- docs/badge.svg | 2 +- .../Resources/Documents/Archives.html} | 193 ++++++-- .../Resources/Documents/Classes/BZip2.html | 85 ++-- .../Resources/Documents/Classes/Deflate.html | 85 ++-- .../Documents/Classes/GzipArchive.html | 140 ++++-- .../Documents/Classes/GzipArchive/Member.html | 117 +++-- .../Resources/Documents/Classes/LZMA.html | 85 ++-- .../Resources/Documents/Classes/LZMA2.html | 85 ++-- .../Documents/Classes/TarContainer.html | 85 ++-- .../Resources/Documents/Classes/TarEntry.html | 87 ++-- .../Documents/Classes/TarEntry/EntryType.html | 85 ++-- .../Documents/Classes/XZArchive.html | 129 ++++-- .../Documents/Classes/ZipContainer.html | 85 ++-- .../Resources/Documents/Classes/ZipEntry.html | 87 ++-- .../Documents/Classes/ZlibArchive.html | 85 ++-- .../{Classes.html => Compression.html} | 375 +++------------- .../Resources/Documents/Containers.html | 329 ++++++++++++++ .../Resources/Documents/Enums/BZip2Error.html | 85 ++-- .../Documents/Enums/DeflateError.html | 85 ++-- .../Resources/Documents/Enums/GzipError.html | 85 ++-- .../Resources/Documents/Enums/LZMA2Error.html | 85 ++-- .../Resources/Documents/Enums/LZMAError.html | 85 ++-- .../Resources/Documents/Enums/TarError.html | 85 ++-- .../Resources/Documents/Enums/XZError.html | 85 ++-- .../Resources/Documents/Enums/ZipError.html | 85 ++-- .../Resources/Documents/Enums/ZlibError.html | 85 ++-- .../Documents/{Enums.html => Errors.html} | 416 +++++++++--------- .../Resources/Documents/Protocols.html | 152 +++---- .../Documents/Protocols/Archive.html | 85 ++-- .../Documents/Protocols/Container.html | 85 ++-- .../Documents/Protocols/ContainerEntry.html | 123 ++++-- .../Protocols/DecompressionAlgorithm.html | 85 ++-- .../Documents/Structs/GzipHeader.html | 85 ++-- .../Structs/GzipHeader/CompressionMethod.html | 85 ++-- .../Structs/GzipHeader/FileSystemType.html | 85 ++-- .../Documents/Structs/ZlibHeader.html | 85 ++-- .../Structs/ZlibHeader/CompressionLevel.html | 85 ++-- .../Structs/ZlibHeader/CompressionMethod.html | 85 ++-- .../Contents/Resources/Documents/index.html | 111 ++--- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 57344 -> 61440 bytes docs/docsets/SWCompression.tgz | Bin 106414 -> 107493 bytes docs/index.html | 111 ++--- docs/search.json | 2 +- docs/undocumented.json | 36 +- 82 files changed, 4980 insertions(+), 4000 deletions(-) rename docs/{docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html => Archives.html} (65%) rename docs/{Classes.html => Compression.html} (53%) create mode 100644 docs/Containers.html rename docs/{Enums.html => Errors.html} (97%) rename docs/{Structs.html => docsets/SWCompression.docset/Contents/Resources/Documents/Archives.html} (65%) rename docs/docsets/SWCompression.docset/Contents/Resources/Documents/{Classes.html => Compression.html} (53%) create mode 100644 docs/docsets/SWCompression.docset/Contents/Resources/Documents/Containers.html rename docs/docsets/SWCompression.docset/Contents/Resources/Documents/{Enums.html => Errors.html} (97%) diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html b/docs/Archives.html similarity index 65% rename from docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html rename to docs/Archives.html index 6b3aec15..38341aef 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html +++ b/docs/Archives.html @@ -1,7 +1,7 @@ - Structs Reference + Archives Reference @@ -15,14 +15,14 @@ - +

SWCompression Docs - (97% documented) + (100% documented)

@@ -43,14 +43,14 @@

-

Structs

-

The following structs are available globally.

- +

Archives

+
@@ -181,6 +185,37 @@
    +
  • +
    + + + + GzipArchive + +
    +
    +
    +
    +
    +
    +

    Provides unarchive and archive functions for GZip archives.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public class GzipArchive: Archive
    + +
    +
    + +
    +
    +
  • @@ -216,6 +251,37 @@
      +
    • +
      + + + + ZlibArchive + +
      +
      +
      +
      +
      +
      +

      Provides unarchive and archive functions for Zlib archives.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public class ZlibArchive: Archive
      + +
      +
      + +
      +
      +
    • @@ -249,6 +315,41 @@
    +
    +
      +
    • +
      + + + + XZArchive + +
      +
      +
      +
      +
      +
      +

      Provides unarchive function for XZ archives.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public class XZArchive: Archive
      + +
      +
      + +
      +
      +
    • +
    +
diff --git a/docs/Classes/BZip2.html b/docs/Classes/BZip2.html index 23855fd0..7b19f03d 100644 --- a/docs/Classes/BZip2.html +++ b/docs/Classes/BZip2.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Classes/Deflate.html b/docs/Classes/Deflate.html index f80caa8f..12d3043f 100644 --- a/docs/Classes/Deflate.html +++ b/docs/Classes/Deflate.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Classes/GzipArchive.html b/docs/Classes/GzipArchive.html index 71b44d8e..7672adbf 100644 --- a/docs/Classes/GzipArchive.html +++ b/docs/Classes/GzipArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

@@ -201,7 +206,7 @@
-

Undocumented

+

Represents a member of multi-member of GZip archive.

See more
@@ -209,12 +214,12 @@

Declaration

Swift

-
public class GzipArchive: Archive
+
public struct Member
@@ -283,7 +288,7 @@ it might not be archived with GZip or compressed with Deflate at all.

Unarchived data.

@@ -301,19 +306,58 @@ it might not be archived with GZip or compressed with Deflate at all.

-

Undocumented

+

Unarchives multi-member GZip archive. +Multi-member GZip archives are essentially several GZip archives following each other in a single file.

+
+

Note

+

wrongCRC error contains only last processed member’s data as their associated value +instead of all successfully processed members. +This is a known issue and it will be fixed in future major version +because solution requires backwards-incompatible API changes.

+ +
+
+

Throws

+

DeflateError or GzipError depending on the type of the problem. +It may indicate that one of the members of archive is damaged or +it might not be archived with GZip or compressed with Deflate at all.

+ +

Declaration

Swift

-
public class GzipArchive: Archive
+
public static func multiUnarchive(archive data: Data) throws -> [Member]
+
+

Parameters

+ + + + + + + +
+ + archive + + +
+

GZip archive with one or more members.

+
+
+
+
+

Return Value

+

Unarchived data.

+
@@ -456,7 +500,7 @@ then - Show on GitHub + Show on GitHub diff --git a/docs/Classes/GzipArchive/Member.html b/docs/Classes/GzipArchive/Member.html index 6320eec3..b1547853 100644 --- a/docs/Classes/GzipArchive/Member.html +++ b/docs/Classes/GzipArchive/Member.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

@@ -173,7 +178,13 @@

Member

-

Undocumented

+
+
+
public struct Member
+ +
+
+

Represents a member of multi-member of GZip archive.

@@ -195,11 +206,19 @@
-

Undocumented

+

GZip header of a member.

+
+

Declaration

+
+

Swift

+
public let header: GzipHeader
+ +
+
@@ -217,11 +236,19 @@
-

Undocumented

+

Unarchived data from a member.

+
+

Declaration

+
+

Swift

+
public let data: Data
+ +
+
diff --git a/docs/Classes/LZMA.html b/docs/Classes/LZMA.html index d7fceea9..96e7a9f1 100644 --- a/docs/Classes/LZMA.html +++ b/docs/Classes/LZMA.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Classes/LZMA2.html b/docs/Classes/LZMA2.html index 1e702b9f..cda1ca56 100644 --- a/docs/Classes/LZMA2.html +++ b/docs/Classes/LZMA2.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Classes/TarContainer.html b/docs/Classes/TarContainer.html index a2f9ea6b..cd85b347 100644 --- a/docs/Classes/TarContainer.html +++ b/docs/Classes/TarContainer.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Classes/TarEntry.html b/docs/Classes/TarEntry.html index 525142f1..7f8759b8 100644 --- a/docs/Classes/TarEntry.html +++ b/docs/Classes/TarEntry.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

@@ -340,7 +345,7 @@

Declaration

Swift

-
public var entryAttributes: [FileAttributeKey: Any]
+
public let entryAttributes: [FileAttributeKey: Any]
diff --git a/docs/Classes/TarEntry/EntryType.html b/docs/Classes/TarEntry/EntryType.html index ddfe49a8..f32d9768 100644 --- a/docs/Classes/TarEntry/EntryType.html +++ b/docs/Classes/TarEntry/EntryType.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Classes/XZArchive.html b/docs/Classes/XZArchive.html index 4e04a96a..7e9ae4d2 100644 --- a/docs/Classes/XZArchive.html +++ b/docs/Classes/XZArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

@@ -267,19 +272,57 @@ It may indicate that either the archive is damaged or it might not be compressed
-

Undocumented

+

Unarchives XZ archive which contains one or more streams.

+
+

Note

+

wrongCheck error contains only last processed stream’s data as their associated value +instead of all successfully processed members. +This is a known issue and it will be fixed in future major version +because solution requires backwards-incompatible API changes.

+ +
+
+

Throws

+

LZMAError, LZMA2Error or XZError depending on the type of the problem. +It may indicate that one of the streams of archive is damaged or +it might not be archived with XZ or LZMA(2) at all.

+ +

Declaration

Swift

-
public class XZArchive: Archive
+
public static func multiUnarchive(archive data: Data) throws -> [Data]
+
+

Parameters

+ + + + + + + +
+ + archive + + +
+

XZ archive with one or more streams.

+
+
+
+
+

Return Value

+

Unarchived data.

+
diff --git a/docs/Classes/ZipContainer.html b/docs/Classes/ZipContainer.html index ef4e5ad7..dd814815 100644 --- a/docs/Classes/ZipContainer.html +++ b/docs/Classes/ZipContainer.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Classes/ZipEntry.html b/docs/Classes/ZipEntry.html index a2cc508e..b0c53eea 100644 --- a/docs/Classes/ZipEntry.html +++ b/docs/Classes/ZipEntry.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

@@ -371,7 +376,7 @@ Otherwise, it is true if size of data is 0 AND last character of entry’s n

Declaration

Swift

-
public var entryAttributes: [FileAttributeKey: Any]
+
public let entryAttributes: [FileAttributeKey: Any]
diff --git a/docs/Classes/ZlibArchive.html b/docs/Classes/ZlibArchive.html index 8e9eb1ca..a0b2171a 100644 --- a/docs/Classes/ZlibArchive.html +++ b/docs/Classes/ZlibArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Classes.html b/docs/Compression.html similarity index 53% rename from docs/Classes.html rename to docs/Compression.html index 5a2f3968..acc1c547 100644 --- a/docs/Classes.html +++ b/docs/Compression.html @@ -1,7 +1,7 @@ - Classes Reference + Compression Reference @@ -15,14 +15,14 @@ - +

SWCompression Docs - (97% documented) + (100% documented)

@@ -43,14 +43,14 @@

-
-
    -
  • -
    - - - - GzipArchive - -
    -
    -
    -
    -
    -
    -

    Provides unarchive and archive functions for GZip archives.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public class GzipArchive: Archive
    - -
    -
    - -
    -
    -
  • -
-
-
- -
-
- -
-
- -
-
-
+ diff --git a/docs/Enums/BZip2Error.html b/docs/Enums/BZip2Error.html index f206ceb7..9f4116e4 100644 --- a/docs/Enums/BZip2Error.html +++ b/docs/Enums/BZip2Error.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Enums/DeflateError.html b/docs/Enums/DeflateError.html index 1d907d40..8d2eee6b 100644 --- a/docs/Enums/DeflateError.html +++ b/docs/Enums/DeflateError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

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

@@ -51,7 +51,7 @@

diff --git a/docs/Enums/LZMA2Error.html b/docs/Enums/LZMA2Error.html index 849a6ba4..c32efd23 100644 --- a/docs/Enums/LZMA2Error.html +++ b/docs/Enums/LZMA2Error.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Enums/LZMAError.html b/docs/Enums/LZMAError.html index 2e00c726..6fcbc26e 100644 --- a/docs/Enums/LZMAError.html +++ b/docs/Enums/LZMAError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Enums/TarError.html b/docs/Enums/TarError.html index 80efdd22..6acf039e 100644 --- a/docs/Enums/TarError.html +++ b/docs/Enums/TarError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Enums/XZError.html b/docs/Enums/XZError.html index 3b3d56f0..cc0160a8 100644 --- a/docs/Enums/XZError.html +++ b/docs/Enums/XZError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

diff --git a/docs/Enums/ZipError.html b/docs/Enums/ZipError.html index 8d093d34..0e3fe623 100644 --- a/docs/Enums/ZipError.html +++ b/docs/Enums/ZipError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

@@ -51,7 +51,7 @@

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

@@ -51,7 +51,7 @@

diff --git a/docs/Enums.html b/docs/Errors.html similarity index 97% rename from docs/Enums.html rename to docs/Errors.html index a0c1bb1f..48748c18 100644 --- a/docs/Enums.html +++ b/docs/Errors.html @@ -1,7 +1,7 @@ - Enums Reference + Errors Reference @@ -15,14 +15,14 @@ - +

SWCompression Docs - (97% documented) + (100% documented)

@@ -43,14 +43,14 @@

-

Enums

-

The following enums are available globally.

- +

Errors

+
@@ -184,9 +188,9 @@
  • - - - LZMA2Error + + + BZip2Error
    @@ -194,165 +198,21 @@
    -

    Represents an error, which happened during LZMA2 decompression. -It may indicate that either data is damaged or it might not be compressed with LZMA2 at all.

    +

    Represents an error, which happened during BZip2 decompression. +It may indicate that either data is damaged or it might not be compressed with BZip2 at all.

    - See more + See more

    Declaration

    Swift

    -
    public enum LZMA2Error: Error
    +
    public enum BZip2Error: Error
    -
    -
    -
  • - -
    -
    -
      -
    • -
      - - - - GzipError - -
      -
      -
      -
      -
      -
      -

      Represents an error, which happened during processing GZip archive. -It may indicate that either archive is damaged or it might not be GZip archive at all.

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      public enum GzipError: Error
      - -
      -
      - -
      -
      -
    • -
    -
    -
    -
      -
    • -
      - - - - ZipError - -
      -
      -
      -
      -
      -
      -

      Represents an error, which happened during processing ZIP container. -It may indicate that either container is damaged or it might not be ZIP container at all.

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      public enum ZipError: Error
      - -
      -
      - -
      -
      -
    • -
    -
    -
    -
      -
    • -
      - - - - LZMAError - -
      -
      -
      -
      -
      -
      -

      Represents an error, which happened during LZMA decompression. -It may indicate that either data is damaged or it might not be compressed with LZMA at all.

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      public enum LZMAError: Error
      - -
      -
      - -
      -
      -
    • -
    -
    -
    -
      -
    • -
      - - - - ZlibError - -
      -
      -
      -
      -
      -
      -

      Represents an error, which happened during processing Zlib archive. -It may indicate that either archive is damaged or it might not be Zlib archive at all.

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      public enum ZlibError: Error
      - -
      -
      -
      @@ -400,9 +260,9 @@ It may indicate that either the data is damaged or it might not be compressed wi
    • - - - BZip2Error + + + GzipError
      @@ -410,21 +270,93 @@ It may indicate that either the data is damaged or it might not be compressed wi
      -

      Represents an error, which happened during BZip2 decompression. -It may indicate that either data is damaged or it might not be compressed with BZip2 at all.

      +

      Represents an error, which happened during processing GZip archive. +It may indicate that either archive is damaged or it might not be GZip archive at all.

      - See more + See more

      Declaration

      Swift

      -
      public enum BZip2Error: Error
      +
      public enum GzipError: Error
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + LZMA2Error + +
      +
      +
      +
      +
      +
      +

      Represents an error, which happened during LZMA2 decompression. +It may indicate that either data is damaged or it might not be compressed with LZMA2 at all.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum LZMA2Error: Error
      + +
      +
      + +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + LZMAError + +
      +
      +
      +
      +
      +
      +

      Represents an error, which happened during LZMA decompression. +It may indicate that either data is damaged or it might not be compressed with LZMA at all.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum LZMAError: Error
      + +
      +
      +
      @@ -503,6 +435,78 @@ It may indicate that either archive is damaged or it might not be XZ archive at
    +
    +
      +
    • +
      + + + + ZipError + +
      +
      +
      +
      +
      +
      +

      Represents an error, which happened during processing ZIP container. +It may indicate that either container is damaged or it might not be ZIP container at all.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum ZipError: Error
      + +
      +
      + +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + ZlibError + +
      +
      +
      +
      +
      +
      +

      Represents an error, which happened during processing Zlib archive. +It may indicate that either archive is damaged or it might not be Zlib archive at all.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum ZlibError: Error
      + +
      +
      + +
      +
      +
    • +
    +
    diff --git a/docs/Protocols.html b/docs/Protocols.html index 2630076f..137e8fb8 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -22,7 +22,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -50,7 +50,7 @@

    @@ -172,8 +177,7 @@

    Protocols

    -

    The following protocols are available globally.

    - +
    @@ -212,37 +216,6 @@ -
  • - -
    -
    -
    -
    -
    -

    A type that provides an implementation of a particular decompression algorithm.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol DecompressionAlgorithm
    - -
    -
    - -
    -
    -
  • @@ -300,7 +273,38 @@
    + + +
  • +
  • + +
    +
    +
    +
    +
    +

    A type that provides an implementation of a particular decompression algorithm.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol DecompressionAlgorithm
    + +
    +
    +
    diff --git a/docs/Protocols/Archive.html b/docs/Protocols/Archive.html index 8513feff..5debefde 100644 --- a/docs/Protocols/Archive.html +++ b/docs/Protocols/Archive.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/Protocols/Container.html b/docs/Protocols/Container.html index b7a8edc1..33bca1a3 100644 --- a/docs/Protocols/Container.html +++ b/docs/Protocols/Container.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/Protocols/ContainerEntry.html b/docs/Protocols/ContainerEntry.html index 51fa9c4b..a8bb049a 100644 --- a/docs/Protocols/ContainerEntry.html +++ b/docs/Protocols/ContainerEntry.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    @@ -278,6 +283,42 @@
  • +
  • +
    + + + + entryAttributes + +
    +
    +
    +
    +
    +
    +

    Provides a dictionary with various attributes of the entry. +FileAttributeKey values are used as dictionary keys.

    +
    +

    Note

    + Will be renamed to attributes in 4.0. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var entryAttributes: [FileAttributeKey: Any]
    + +
    +
    + +
    +
    +
  • @@ -303,7 +344,7 @@
    diff --git a/docs/Protocols/DecompressionAlgorithm.html b/docs/Protocols/DecompressionAlgorithm.html index a1f94025..1c990471 100644 --- a/docs/Protocols/DecompressionAlgorithm.html +++ b/docs/Protocols/DecompressionAlgorithm.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/Structs/GzipHeader.html b/docs/Structs/GzipHeader.html index 64c2f425..a6257042 100644 --- a/docs/Structs/GzipHeader.html +++ b/docs/Structs/GzipHeader.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/Structs/GzipHeader/CompressionMethod.html b/docs/Structs/GzipHeader/CompressionMethod.html index bceb4de7..c6af7cf4 100644 --- a/docs/Structs/GzipHeader/CompressionMethod.html +++ b/docs/Structs/GzipHeader/CompressionMethod.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/Structs/GzipHeader/FileSystemType.html b/docs/Structs/GzipHeader/FileSystemType.html index 235a0059..2a299823 100644 --- a/docs/Structs/GzipHeader/FileSystemType.html +++ b/docs/Structs/GzipHeader/FileSystemType.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/Structs/ZlibHeader.html b/docs/Structs/ZlibHeader.html index 80eec57d..815f6229 100644 --- a/docs/Structs/ZlibHeader.html +++ b/docs/Structs/ZlibHeader.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/Structs/ZlibHeader/CompressionLevel.html b/docs/Structs/ZlibHeader/CompressionLevel.html index 1e256c4d..30919717 100644 --- a/docs/Structs/ZlibHeader/CompressionLevel.html +++ b/docs/Structs/ZlibHeader/CompressionLevel.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/Structs/ZlibHeader/CompressionMethod.html b/docs/Structs/ZlibHeader/CompressionMethod.html index 3ded2f85..e4ee3e72 100644 --- a/docs/Structs/ZlibHeader/CompressionMethod.html +++ b/docs/Structs/ZlibHeader/CompressionMethod.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/badge.svg b/docs/badge.svg index ffb8f670..2606d804 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -1 +1 @@ -documentationdocumentation97%97% \ No newline at end of file +documentationdocumentation100%100% \ No newline at end of file diff --git a/docs/Structs.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Archives.html similarity index 65% rename from docs/Structs.html rename to docs/docsets/SWCompression.docset/Contents/Resources/Documents/Archives.html index 6b3aec15..38341aef 100644 --- a/docs/Structs.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Archives.html @@ -1,7 +1,7 @@ - Structs Reference + Archives Reference @@ -15,14 +15,14 @@ - +

    SWCompression Docs - (97% documented) + (100% documented)

    @@ -43,14 +43,14 @@

    -

    Structs

    -

    The following structs are available globally.

    - +

    Archives

    +
    @@ -181,6 +185,37 @@
      +
    • +
      + + + + GzipArchive + +
      +
      +
      +
      +
      +
      +

      Provides unarchive and archive functions for GZip archives.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public class GzipArchive: Archive
      + +
      +
      + +
      +
      +
    • @@ -216,6 +251,37 @@
        +
      • +
        + + + + ZlibArchive + +
        +
        +
        +
        +
        +
        +

        Provides unarchive and archive functions for Zlib archives.

        + + See more +
        +
        +

        Declaration

        +
        +

        Swift

        +
        public class ZlibArchive: Archive
        + +
        +
        + +
        +
        +
      • @@ -249,6 +315,41 @@
      +
      +
        +
      • +
        + + + + XZArchive + +
        +
        +
        +
        +
        +
        +

        Provides unarchive function for XZ archives.

        + + See more +
        +
        +

        Declaration

        +
        +

        Swift

        +
        public class XZArchive: Archive
        + +
        +
        + +
        +
        +
      • +
      +
    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 23855fd0..7b19f03d 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 f80caa8f..12d3043f 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 71b44d8e..7672adbf 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    @@ -201,7 +206,7 @@
    -

    Undocumented

    +

    Represents a member of multi-member of GZip archive.

    See more
    @@ -209,12 +214,12 @@

    Declaration

    Swift

    -
    public class GzipArchive: Archive
    +
    public struct Member
    @@ -283,7 +288,7 @@ it might not be archived with GZip or compressed with Deflate at all.

    Unarchived data.

    @@ -301,19 +306,58 @@ it might not be archived with GZip or compressed with Deflate at all.

    -

    Undocumented

    +

    Unarchives multi-member GZip archive. +Multi-member GZip archives are essentially several GZip archives following each other in a single file.

    +
    +

    Note

    +

    wrongCRC error contains only last processed member’s data as their associated value +instead of all successfully processed members. +This is a known issue and it will be fixed in future major version +because solution requires backwards-incompatible API changes.

    + +
    +
    +

    Throws

    +

    DeflateError or GzipError depending on the type of the problem. +It may indicate that one of the members of archive is damaged or +it might not be archived with GZip or compressed with Deflate at all.

    + +

    Declaration

    Swift

    -
    public class GzipArchive: Archive
    +
    public static func multiUnarchive(archive data: Data) throws -> [Member]
    +
    +

    Parameters

    + + + + + + + +
    + + archive + + +
    +

    GZip archive with one or more members.

    +
    +
    +
    +
    +

    Return Value

    +

    Unarchived data.

    +
    @@ -456,7 +500,7 @@ then - Show on GitHub + Show on GitHub diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive/Member.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive/Member.html index 6320eec3..b1547853 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive/Member.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive/Member.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    @@ -173,7 +178,13 @@

    Member

    -

    Undocumented

    +
    +
    +
    public struct Member
    + +
    +
    +

    Represents a member of multi-member of GZip archive.

    @@ -195,11 +206,19 @@
    -

    Undocumented

    +

    GZip header of a member.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public let header: GzipHeader
    + +
    +
    @@ -217,11 +236,19 @@
    -

    Undocumented

    +

    Unarchived data from a member.

    +
    +

    Declaration

    +
    +

    Swift

    +
    public let data: Data
    + +
    +
    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 d7fceea9..96e7a9f1 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 1e702b9f..cda1ca56 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarContainer.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarContainer.html index a2f9ea6b..cd85b347 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarContainer.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarContainer.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarEntry.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarEntry.html index 525142f1..7f8759b8 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarEntry.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarEntry.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    @@ -340,7 +345,7 @@

    Declaration

    Swift

    -
    public var entryAttributes: [FileAttributeKey: Any]
    +
    public let entryAttributes: [FileAttributeKey: Any]
    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarEntry/EntryType.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarEntry/EntryType.html index ddfe49a8..f32d9768 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarEntry/EntryType.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/TarEntry/EntryType.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 4e04a96a..7e9ae4d2 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    @@ -267,19 +272,57 @@ It may indicate that either the archive is damaged or it might not be compressed
    -

    Undocumented

    +

    Unarchives XZ archive which contains one or more streams.

    +
    +

    Note

    +

    wrongCheck error contains only last processed stream’s data as their associated value +instead of all successfully processed members. +This is a known issue and it will be fixed in future major version +because solution requires backwards-incompatible API changes.

    + +
    +
    +

    Throws

    +

    LZMAError, LZMA2Error or XZError depending on the type of the problem. +It may indicate that one of the streams of archive is damaged or +it might not be archived with XZ or LZMA(2) at all.

    + +

    Declaration

    Swift

    -
    public class XZArchive: Archive
    +
    public static func multiUnarchive(archive data: Data) throws -> [Data]
    +
    +

    Parameters

    + + + + + + + +
    + + archive + + +
    +

    XZ archive with one or more streams.

    +
    +
    +
    +
    +

    Return Value

    +

    Unarchived data.

    +
    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 ef4e5ad7..dd814815 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipEntry.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipEntry.html index a2cc508e..b0c53eea 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipEntry.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipEntry.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    @@ -371,7 +376,7 @@ Otherwise, it is true if size of data is 0 AND last character of entry’s n

    Declaration

    Swift

    -
    public var entryAttributes: [FileAttributeKey: Any]
    +
    public let entryAttributes: [FileAttributeKey: Any]
    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 8e9eb1ca..a0b2171a 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Compression.html similarity index 53% rename from docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html rename to docs/docsets/SWCompression.docset/Contents/Resources/Documents/Compression.html index 5a2f3968..acc1c547 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Compression.html @@ -1,7 +1,7 @@ - Classes Reference + Compression Reference @@ -15,14 +15,14 @@ - +

    SWCompression Docs - (97% documented) + (100% documented)

    @@ -43,14 +43,14 @@

    -
    -
      -
    • -
      - - - - GzipArchive - -
      -
      -
      -
      -
      -
      -

      Provides unarchive and archive functions for GZip archives.

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      public class GzipArchive: Archive
      - -
      -
      - -
      -
      -
    • -
    -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    + 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 f206ceb7..9f4116e4 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 1d907d40..8d2eee6b 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 ccf29009..100e27db 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 849a6ba4..c32efd23 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 2e00c726..6fcbc26e 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/TarError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/TarError.html index 80efdd22..6acf039e 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/TarError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/TarError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 3b3d56f0..cc0160a8 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 8d093d34..0e3fe623 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 ec690100..cbe4a03d 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Errors.html similarity index 97% rename from docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html rename to docs/docsets/SWCompression.docset/Contents/Resources/Documents/Errors.html index a0c1bb1f..48748c18 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Errors.html @@ -1,7 +1,7 @@ - Enums Reference + Errors Reference @@ -15,14 +15,14 @@ - +

    SWCompression Docs - (97% documented) + (100% documented)

    @@ -43,14 +43,14 @@

    -

    Enums

    -

    The following enums are available globally.

    - +

    Errors

    +
    @@ -184,9 +188,9 @@
  • - - - LZMA2Error + + + BZip2Error
    @@ -194,165 +198,21 @@
    -

    Represents an error, which happened during LZMA2 decompression. -It may indicate that either data is damaged or it might not be compressed with LZMA2 at all.

    +

    Represents an error, which happened during BZip2 decompression. +It may indicate that either data is damaged or it might not be compressed with BZip2 at all.

    - See more + See more

    Declaration

    Swift

    -
    public enum LZMA2Error: Error
    +
    public enum BZip2Error: Error
    -
    -
    -
  • - -
    -
    -
      -
    • -
      - - - - GzipError - -
      -
      -
      -
      -
      -
      -

      Represents an error, which happened during processing GZip archive. -It may indicate that either archive is damaged or it might not be GZip archive at all.

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      public enum GzipError: Error
      - -
      -
      - -
      -
      -
    • -
    -
    -
    -
      -
    • -
      - - - - ZipError - -
      -
      -
      -
      -
      -
      -

      Represents an error, which happened during processing ZIP container. -It may indicate that either container is damaged or it might not be ZIP container at all.

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      public enum ZipError: Error
      - -
      -
      - -
      -
      -
    • -
    -
    -
    -
      -
    • -
      - - - - LZMAError - -
      -
      -
      -
      -
      -
      -

      Represents an error, which happened during LZMA decompression. -It may indicate that either data is damaged or it might not be compressed with LZMA at all.

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      public enum LZMAError: Error
      - -
      -
      - -
      -
      -
    • -
    -
    -
    -
      -
    • -
      - - - - ZlibError - -
      -
      -
      -
      -
      -
      -

      Represents an error, which happened during processing Zlib archive. -It may indicate that either archive is damaged or it might not be Zlib archive at all.

      - - See more -
      -
      -

      Declaration

      -
      -

      Swift

      -
      public enum ZlibError: Error
      - -
      -
      -
      @@ -400,9 +260,9 @@ It may indicate that either the data is damaged or it might not be compressed wi
    • - - - BZip2Error + + + GzipError
      @@ -410,21 +270,93 @@ It may indicate that either the data is damaged or it might not be compressed wi
      -

      Represents an error, which happened during BZip2 decompression. -It may indicate that either data is damaged or it might not be compressed with BZip2 at all.

      +

      Represents an error, which happened during processing GZip archive. +It may indicate that either archive is damaged or it might not be GZip archive at all.

      - See more + See more

      Declaration

      Swift

      -
      public enum BZip2Error: Error
      +
      public enum GzipError: Error
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + LZMA2Error + +
      +
      +
      +
      +
      +
      +

      Represents an error, which happened during LZMA2 decompression. +It may indicate that either data is damaged or it might not be compressed with LZMA2 at all.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum LZMA2Error: Error
      + +
      +
      + +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + LZMAError + +
      +
      +
      +
      +
      +
      +

      Represents an error, which happened during LZMA decompression. +It may indicate that either data is damaged or it might not be compressed with LZMA at all.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum LZMAError: Error
      + +
      +
      +
      @@ -503,6 +435,78 @@ It may indicate that either archive is damaged or it might not be XZ archive at
    +
    +
      +
    • +
      + + + + ZipError + +
      +
      +
      +
      +
      +
      +

      Represents an error, which happened during processing ZIP container. +It may indicate that either container is damaged or it might not be ZIP container at all.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum ZipError: Error
      + +
      +
      + +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + ZlibError + +
      +
      +
      +
      +
      +
      +

      Represents an error, which happened during processing Zlib archive. +It may indicate that either archive is damaged or it might not be Zlib archive at all.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum ZlibError: Error
      + +
      +
      + +
      +
      +
    • +
    +
    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html index 2630076f..137e8fb8 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html @@ -22,7 +22,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -50,7 +50,7 @@

    @@ -172,8 +177,7 @@

    Protocols

    -

    The following protocols are available globally.

    - +
    @@ -212,37 +216,6 @@
  • -
  • - -
    -
    -
    -
    -
    -

    A type that provides an implementation of a particular decompression algorithm.

    - - See more -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol DecompressionAlgorithm
    - -
    -
    - -
    -
    -
  • @@ -300,7 +273,38 @@
    + + +
  • +
  • + +
    +
    +
    +
    +
    +

    A type that provides an implementation of a particular decompression algorithm.

    + + See more +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public protocol DecompressionAlgorithm
    + +
    +
    +
    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 8513feff..5debefde 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Container.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Container.html index b7a8edc1..33bca1a3 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Container.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Container.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/ContainerEntry.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/ContainerEntry.html index 51fa9c4b..a8bb049a 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/ContainerEntry.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/ContainerEntry.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    @@ -278,6 +283,42 @@
  • +
  • +
    + + + + entryAttributes + +
    +
    +
    +
    +
    +
    +

    Provides a dictionary with various attributes of the entry. +FileAttributeKey values are used as dictionary keys.

    +
    +

    Note

    + Will be renamed to attributes in 4.0. + +
    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    var entryAttributes: [FileAttributeKey: Any]
    + +
    +
    + +
    +
    +
  • @@ -303,7 +344,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 a1f94025..1c990471 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,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 64c2f425..a6257042 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 bceb4de7..c6af7cf4 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,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 235a0059..2a299823 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,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 80eec57d..815f6229 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    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 1e256c4d..30919717 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,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 3ded2f85..e4ee3e72 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html @@ -23,7 +23,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -51,7 +51,7 @@

    diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html index a10ec1d6..2535f684 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html @@ -22,7 +22,7 @@ SWCompression Docs - (97% documented) + (100% documented)

    @@ -50,7 +50,7 @@

    @@ -338,26 +343,28 @@ For example:

    There is a small program, swcomp, which uses SWCompression for unarchiving several types of archives.

    -

    Why is it so slow?

    +

    Performace

    -

    Version 2.0 came with a great performance improvement. -Just look at the Tests Results. -So if it’s slow the first thing you should do is to make sure you are using version >= 2.0.

    +

    TL;DR Constantly trying to improve performance; +use whole module optimizations, which are enabled by default for Release configurations.

    -

    Is it still slow? -Maybe you are compiling SWCompression not for ‘Release’ but with ‘Debug’ build configuration? -For some reason, when framework is built for ‘Debug’ its performance significantly worse. -You can once again check test results if you want to convince yourself that this is the case.

    +

    Further thoughts, details and notes about performance you can read in a separate document.

    -

    Finally, SWCompression’s code is not as optimized as original C/C++ versions of corresponding algorithms, -so some difference in speed is expected.

    +

    Tests Results document contains results of performance testing of various algorithms.

    +

    Known issues

    -

    To sum up, it is highly recommended to build SWCompression with ‘Release’ configuration and use the latest version (at least 2.0).

    +
      +
    • wrongCRC and wrongCheck errors for XZ and GZip multi-member archives +contain only last member’s data as their associated value instead of all successfully processed members.
    • +
    + +

    Comment: Philosophy for such errors is that by the time these errors are thrown, +decompression was already performed, so we can still provide the result of decompression to the caller. +It is intended to fix this problem, but solution requires backwards-incompatible API changes so it is delayed until 4.0 release.

    Future plans

    • Better Deflate compression.
    • -
    • Support for additional attributes in containers.
    • 7zip containers.
    • BZip2 compression.
    • Something else…
    • diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json index 07c84080..a8ea549a 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. Currently, always equals to .deflate.

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

      Level of compression used in archive.

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

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

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

      Initializes the structure with the values from Zlib archive.

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

      One of many UNIX-like systems.

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

      Older Macintosh 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 is 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. Currently, always equals to .deflate.

      ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeGSqV10Foundation4Date_":{"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 archivation took place.

      ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader8fileNameGSqSS_":{"name":"fileName","abstract":"

      Name of the original file. If archive doesn’t contain file’s name, then nil.

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

      Comment stored in archive. If archive doesn’t contain any comment, then nil.

      ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader10isTextFileSb":{"name":"isTextFile","abstract":"

      Check if file is likely to be text file or ASCII-file.

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

      Initializes the structure with the values from the first ‘member’ of GZip archive.

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

      Represents a GZip archive’s header.

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

      Represents a Zlib archive’s header.

      "},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry4nameSS":{"name":"name","abstract":"

      Retrieve name of the entry from the container.

      ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry4sizeSi":{"name":"size","abstract":"

      Retrieve size of the entry’s data from the container.

      ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry11isDirectorySb":{"name":"isDirectory","abstract":"

      Check if entry is a directory.

      ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:FP13SWCompression14ContainerEntry4dataFzT_V10Foundation4Data":{"name":"data()","abstract":"

      Retrieve entry’s data from the container.

      ","parent_name":"ContainerEntry"},"Protocols/Container.html#/s:ZFP13SWCompression9Container4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

      Retrieve all the entries from the container.

      ","parent_name":"Container"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

      Decompress data compressed with particular algorithm.

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

      Unarchive data from the archive.

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

      A type that represents an archive.

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

      A type that provides an implementation of a particular decompression algorithm.

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

      A type that represents a container of files, directories and/or other data.

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

      A type that represents an entry from a container (file or directory) with attributes.

      "},"Enums/XZError.html#/s:FO13SWCompression7XZError10wrongMagicFMS0_S0_":{"name":"wrongMagic","abstract":"

      Either ‘magic’ number in header or footer isn’t equal to a predefined value.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15wrongFieldValueFMS0_S0_":{"name":"wrongFieldValue","abstract":"

      One of the fields in archive has an incorrect value.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18fieldReservedValueFMS0_S0_":{"name":"fieldReservedValue","abstract":"

      One of the reserved fields in archive has an unexpected value, which can also mean (apart from damaged archive),","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12wrongInfoCRCFMS0_S0_":{"name":"wrongInfoCRC","abstract":"

      Checksum of one of the fields of archive doesn’t match the value stored in archive.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13wrongFilterIDFMS0_S0_":{"name":"wrongFilterID","abstract":"

      Filter used in archvie is unsupported.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15checkTypeSHA256FMS0_S0_":{"name":"checkTypeSHA256","abstract":"

      Archive uses SHA-256 checksum which is unsupported.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13wrongDataSizeFMS0_S0_":{"name":"wrongDataSize","abstract":"

      Either size of decompressed data isn’t equal to the one specified in archive or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10wrongCheckFMS0_FV10Foundation4DataS0_":{"name":"wrongCheck","abstract":"

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

      Padding (null-bytes appended to an archive’s structure) is incorrect.

      ","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/TarError.html#/s:FO13SWCompression8TarError20tooSmallFileIsPassedFMS0_S0_":{"name":"tooSmallFileIsPassed","abstract":"

      Size of data is too small, even to contain only one header.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError16fieldIsNotNumberFMS0_S0_":{"name":"fieldIsNotNumber","abstract":"

      Failed to process a field as a number.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError19wrongHeaderChecksumFMS0_S0_":{"name":"wrongHeaderChecksum","abstract":"

      Computed checksum of a header doesn’t match the value stored in container.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError17wrongUstarVersionFMS0_S0_":{"name":"wrongUstarVersion","abstract":"

      Unsupported version of USTAR format.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError19wrongPaxHeaderEntryFMS0_S0_":{"name":"wrongPaxHeaderEntry","abstract":"

      Entry from PAX extended header is in incorrect format.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError14notAsciiStringFMS0_S0_":{"name":"notAsciiString","abstract":"

      Failed to process a field as an ASCII string.

      ","parent_name":"TarError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10wrongMagicFMS0_S0_":{"name":"wrongMagic","abstract":"

      ‘Magic’ number is not 0x425a.

      ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

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

      ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14wrongBlockSizeFMS0_S0_":{"name":"wrongBlockSize","abstract":"

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

      ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14wrongBlockTypeFMS0_S0_":{"name":"wrongBlockType","abstract":"

      Unsupported block type (is 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 is greater than the 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 wasn’t found in Huffman tree.

      ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error8wrongCRCFMS0_FV10Foundation4DataS0_":{"name":"wrongCRC","abstract":"

      Computed checksum of uncompressed data doesn’t match the value stored in archive.","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29wrongUncompressedBlockLengthsFMS0_S0_":{"name":"wrongUncompressedBlockLengths","abstract":"

      Uncompressed block’s length and nlength bytes isn’t consistent with each other.

      ","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14wrongBlockTypeFMS0_S0_":{"name":"wrongBlockType","abstract":"

      Unknown block type (not 0, 1 or 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 wasn’t found in Huffman tree.

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

      Compression method used in archive is different from Deflate, which is the only supported one.

      ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20wrongCompressionInfoFMS0_S0_":{"name":"wrongCompressionInfo","abstract":"

      Compression info has value incompatible with Deflate compression method.

      ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11wrongFcheckFMS0_S0_":{"name":"wrongFcheck","abstract":"

      First two bytes of archive’s flags are inconsistent with each other.

      ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21wrongCompressionLevelFMS0_S0_":{"name":"wrongCompressionLevel","abstract":"

      Compression level has value, which is different from the supported ones.

      ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12wrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"wrongAdler32","abstract":"

      Computed checksum of uncompressed data doesn’t match the value stored in archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15wrongPropertiesFMS0_S0_":{"name":"wrongProperties","abstract":"

      Properties’ byte is 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":"

      Size of uncompressed data hit specified 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/LZMAError.html#/s:FO13SWCompression9LZMAError23decoderIsNotInitialisedFMS0_S0_":{"name":"decoderIsNotInitialised","abstract":"

      LZMADecoder wasn’t properly initialized before decoding data.

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

      End of Central Directoty record wasn’t found.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14wrongSignatureFMS0_S0_":{"name":"wrongSignature","abstract":"

      Wrong signature of one of container’s structures.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9wrongSizeFMS0_S0_":{"name":"wrongSize","abstract":"

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

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12wrongVersionFMS0_S0_":{"name":"wrongVersion","abstract":"

      Version needed to process container is unsupported.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24multiVolumesNotSupportedFMS0_S0_":{"name":"multiVolumesNotSupported","abstract":"

      Container is either spanned or consists of several volumes. These features aren’t supported.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22encryptionNotSupportedFMS0_S0_":{"name":"encryptionNotSupported","abstract":"

      Entry or record is encrypted. This feature isn’t supported.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20patchingNotSupportedFMS0_S0_":{"name":"patchingNotSupported","abstract":"

      Entry contains patched data. This feature isn’t supported.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23compressionNotSupportedFMS0_S0_":{"name":"compressionNotSupported","abstract":"

      Entry is compressed using unsupported compression method.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16wrongLocalHeaderFMS0_S0_":{"name":"wrongLocalHeader","abstract":"

      Local header of an entry is inconsistent with Central Directory.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10wrongCRC32FMS0_FV10Foundation4DataS0_":{"name":"wrongCRC32","abstract":"

      Computed checksum of entry’s data doesn’t match the value stored in container.","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14wrongTextFieldFMS0_S0_":{"name":"wrongTextField","abstract":"

      Either entry’s comment or file name cannot be processed using UTF-8 encoding.

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

      First two bytes (‘magic’ number) of archive isn’t 31 and 139.

      ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

      Compression method used in archive is different from Deflate, which is the only supported one.

      ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10wrongFlagsFMS0_S0_":{"name":"wrongFlags","abstract":"

      One of the reserved fields in archive has an unexpected value, which can also mean (apart from damaged archive),","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14wrongHeaderCRCFMS0_S0_":{"name":"wrongHeaderCRC","abstract":"

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

      ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8wrongCRCFMS0_FV10Foundation4DataS0_":{"name":"wrongCRC","abstract":"

      Computed checksum of uncompressed data doesn’t match the value stored in 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/GzipError.html#/s:FO13SWCompression9GzipError21cannotEncodeISOLatin1FMS0_S0_":{"name":"cannotEncodeISOLatin1","abstract":"

      Either specified file name or comment cannot be encoded using ISO Latin-1 encoding.

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

      Reserved bits of LZMA2 properties’ byte aren’t equal to zero.

      ","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19wrongDictionarySizeFMS0_S0_":{"name":"wrongDictionarySize","abstract":"

      Dictionary size is 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 encountered in LZMA2 packet.

      ","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10wrongSizesFMS0_S0_":{"name":"wrongSizes","abstract":"

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

      Represents an error, which happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

      Represents an error, which happened during processing GZip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

      Represents an error, which happened during processing ZIP container."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

      Represents an error, which happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

      Represents an error, which happened during processing Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

      Represents an error, which happened during Deflate compression or decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

      Represents an error, which happened during BZip2 decompression."},"Enums/TarError.html":{"name":"TarError","abstract":"

      Represents an error, which happened during processing TAR container."},"Enums/XZError.html":{"name":"XZError","abstract":"

      Represents an error, which happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

      Unarchives XZ archive.

      ","parent_name":"XZArchive"},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive14multiUnarchiveFzT7archiveV10Foundation4Data_GSaS2__":{"name":"multiUnarchive(archive:)","abstract":"

      Undocumented

      ","parent_name":"XZArchive"},"Classes/TarContainer.html#/s:ZFC13SWCompression12TarContainer4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

      Processes TAR container and returns an array of ContainerEntries (which are actually TarEntries).

      ","parent_name":"TarContainer"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType6normalFMS1_S1_":{"name":"normal","abstract":"

      Normal file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType8hardLinkFMS1_S1_":{"name":"hardLink","abstract":"

      Hard linked entry.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType12symbolicLinkFMS1_S1_":{"name":"symbolicLink","abstract":"

      Symbolically linked entry.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType16characterSpecialFMS1_S1_":{"name":"characterSpecial","abstract":"

      Character special file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType12blockSpecialFMS1_S1_":{"name":"blockSpecial","abstract":"

      Block special file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType9directoryFMS1_S1_":{"name":"directory","abstract":"

      Directory.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType4fifoFMS1_S1_":{"name":"fifo","abstract":"

      FIFO special file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType10contiguousFMS1_S1_":{"name":"contiguous","abstract":"

      Contiguous file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType20globalExtendedHeaderFMS1_S1_":{"name":"globalExtendedHeader","abstract":"

      PAX global extended header. (Should not be encountered separately).

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType19localExtendedHeaderFMS1_S1_":{"name":"localExtendedHeader","abstract":"

      PAX local extended header. (Should not be encountered separately).

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType23vendorUnknownOrReservedFMS1_S1_":{"name":"vendorUnknownOrReserved","abstract":"

      Either unknown type, vendor specific or reserved value.

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

      Represents a type of an entry.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4nameSS":{"name":"name","abstract":"

      Name of the file or directory.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry11isDirectorySb":{"name":"isDirectory","abstract":"

      True, if an entry is a directory.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4sizeSi":{"name":"size","abstract":"

      Size of the data associated with the entry.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

      Provides a dictionary with various attributes of the entry.","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4modeGSqSi_":{"name":"mode","abstract":"

      File mode.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7ownerIDGSqSi_":{"name":"ownerID","abstract":"

      Owner’s ID.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7groupIDGSqSi_":{"name":"groupID","abstract":"

      Owner’s group ID.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

      The most recent modification time of the original file or directory.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4typeOS0_9EntryType":{"name":"type","abstract":"

      Type of entry.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry13ownerUserNameGSqSS_":{"name":"ownerUserName","abstract":"

      Owner’s user name.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry14ownerGroupNameGSqSS_":{"name":"ownerGroupName","abstract":"

      Owner’s group name.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry10accessTimeGSqV10Foundation4Date_":{"name":"accessTime","abstract":"

      The most recent access time of the original file or directory (PAX only).

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7charsetGSqSS_":{"name":"charset","abstract":"

      Name of the character set used to encode entry’s data (PAX only).

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7commentGSqSS_":{"name":"comment","abstract":"

      Comment associated with the entry (PAX only).

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry8linkPathGSqSS_":{"name":"linkPath","abstract":"

      Path to a linked file.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry28unknownExtendedHeaderEntriesGVs10DictionarySSSS_":{"name":"unknownExtendedHeaderEntries","abstract":"

      Other entries from PAX extended headers.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:FC13SWCompression8TarEntry4dataFT_V10Foundation4Data":{"name":"data()","abstract":"

      Returns data associated with this entry.

      ","parent_name":"TarEntry"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

      Decompresses data using BZip2 algortihm.

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

      Decompresses data using 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:ZFC13SWCompression11ZlibArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

      Unarchives Zlib archive.

      ","parent_name":"ZlibArchive"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

      Archives data into Zlib archive.","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

      Decompresses data using LZMA algortihm.

      ","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

      Processes ZIP container and returns an array of ContainerEntries (which are actually ZipEntries).

      ","parent_name":"ZipContainer"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry4nameSS":{"name":"name","abstract":"

      Name of the file or directory.

      ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry7commentGSqSS_":{"name":"comment","abstract":"

      Comment associated with the entry.

      ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry10attributesVs6UInt32":{"name":"attributes","abstract":"

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

      ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry4sizeSi":{"name":"size","abstract":"

      Size of the data associated with the entry.

      ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry11isDirectorySb":{"name":"isDirectory","abstract":"

      True, if an entry is a directory.","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

      Provides a dictionary with various attributes of the entry.","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:FC13SWCompression8ZipEntry4dataFzT_V10Foundation4Data":{"name":"data()","abstract":"

      Returns data associated with this entry.

      ","parent_name":"ZipEntry"},"Classes/GzipArchive/Member.html#/s:vVC13SWCompression11GzipArchive6Member6headerVS_10GzipHeader":{"name":"header","abstract":"

      Undocumented

      ","parent_name":"Member"},"Classes/GzipArchive/Member.html#/s:vVC13SWCompression11GzipArchive6Member4dataV10Foundation4Data":{"name":"data","abstract":"

      Undocumented

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

      Undocumented

      ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

      Unarchives GZip archive.

      ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive14multiUnarchiveFzT7archiveV10Foundation4Data_GSaVS0_6Member_":{"name":"multiUnarchive(archive:)","abstract":"

      Undocumented

      ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data7commentGSqSS_8fileNameGSqSS_14writeHeaderCRCSb10isTextFileSb6osTypeGSqOVS_10GzipHeader14FileSystemType_16modificationTimeGSqVS1_4Date__S2_":{"name":"archive(data:comment:fileName:writeHeaderCRC:isTextFile:osType:modificationTime:)","abstract":"

      Archives data into GZip archive, using various specified options.","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

      Decompresses data using LZMA2 algortihm.

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

      Provides decompression function for LZMA2 algorithm.

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

      Provides unarchive and archive functions for GZip archives.

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

      Represents either a file or directory entry in ZIP container.

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

      Provides open function for ZIP containers.

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

      Provides decompression function for LZMA algorithm.

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

      Provides unarchive and archive functions for Zlib archives.

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

      Provides compression and decompression functions for Deflate algorithm.

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

      Provides decompression function for BZip2 algorithm.

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

      Represents either a file or directory entry in TAR container.

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

      Provides open function for TAR containers.

      "},"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 +{"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

      Decompress data compressed with particular algorithm.

      ","parent_name":"DecompressionAlgorithm"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry4nameSS":{"name":"name","abstract":"

      Retrieve name of the entry from the container.

      ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry4sizeSi":{"name":"size","abstract":"

      Retrieve size of the entry’s data from the container.

      ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry11isDirectorySb":{"name":"isDirectory","abstract":"

      Check if entry is a directory.

      ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

      Provides a dictionary with various attributes of the entry.","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:FP13SWCompression14ContainerEntry4dataFzT_V10Foundation4Data":{"name":"data()","abstract":"

      Retrieve entry’s data from the container.

      ","parent_name":"ContainerEntry"},"Protocols/Container.html#/s:ZFP13SWCompression9Container4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

      Retrieve all the entries from the container.

      ","parent_name":"Container"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

      Unarchive data from the archive.

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

      A type that represents an archive.

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

      A type that represents a container of files, directories and/or other data.

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

      A type that represents an entry from a container (file or directory) with attributes.

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

      A type that provides an implementation of a particular decompression algorithm.

      "},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

      Compression method used in archive is different from Deflate, which is the only supported one.

      ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20wrongCompressionInfoFMS0_S0_":{"name":"wrongCompressionInfo","abstract":"

      Compression info has value incompatible with Deflate compression method.

      ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11wrongFcheckFMS0_S0_":{"name":"wrongFcheck","abstract":"

      First two bytes of archive’s flags are inconsistent with each other.

      ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21wrongCompressionLevelFMS0_S0_":{"name":"wrongCompressionLevel","abstract":"

      Compression level has value, which is different from the supported ones.

      ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12wrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"wrongAdler32","abstract":"

      Computed checksum of uncompressed data doesn’t match the value stored in archive.","parent_name":"ZlibError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27notFoundCentralDirectoryEndFMS0_S0_":{"name":"notFoundCentralDirectoryEnd","abstract":"

      End of Central Directoty record wasn’t found.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14wrongSignatureFMS0_S0_":{"name":"wrongSignature","abstract":"

      Wrong signature of one of container’s structures.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9wrongSizeFMS0_S0_":{"name":"wrongSize","abstract":"

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

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12wrongVersionFMS0_S0_":{"name":"wrongVersion","abstract":"

      Version needed to process container is unsupported.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24multiVolumesNotSupportedFMS0_S0_":{"name":"multiVolumesNotSupported","abstract":"

      Container is either spanned or consists of several volumes. These features aren’t supported.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22encryptionNotSupportedFMS0_S0_":{"name":"encryptionNotSupported","abstract":"

      Entry or record is encrypted. This feature isn’t supported.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20patchingNotSupportedFMS0_S0_":{"name":"patchingNotSupported","abstract":"

      Entry contains patched data. This feature isn’t supported.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23compressionNotSupportedFMS0_S0_":{"name":"compressionNotSupported","abstract":"

      Entry is compressed using unsupported compression method.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16wrongLocalHeaderFMS0_S0_":{"name":"wrongLocalHeader","abstract":"

      Local header of an entry is inconsistent with Central Directory.

      ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10wrongCRC32FMS0_FV10Foundation4DataS0_":{"name":"wrongCRC32","abstract":"

      Computed checksum of entry’s data doesn’t match the value stored in container.","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14wrongTextFieldFMS0_S0_":{"name":"wrongTextField","abstract":"

      Either entry’s comment or file name cannot be processed using UTF-8 encoding.

      ","parent_name":"ZipError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10wrongMagicFMS0_S0_":{"name":"wrongMagic","abstract":"

      Either ‘magic’ number in header or footer isn’t equal to a predefined value.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15wrongFieldValueFMS0_S0_":{"name":"wrongFieldValue","abstract":"

      One of the fields in archive has an incorrect value.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18fieldReservedValueFMS0_S0_":{"name":"fieldReservedValue","abstract":"

      One of the reserved fields in archive has an unexpected value, which can also mean (apart from damaged archive),","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12wrongInfoCRCFMS0_S0_":{"name":"wrongInfoCRC","abstract":"

      Checksum of one of the fields of archive doesn’t match the value stored in archive.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13wrongFilterIDFMS0_S0_":{"name":"wrongFilterID","abstract":"

      Filter used in archvie is unsupported.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15checkTypeSHA256FMS0_S0_":{"name":"checkTypeSHA256","abstract":"

      Archive uses SHA-256 checksum which is unsupported.

      ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13wrongDataSizeFMS0_S0_":{"name":"wrongDataSize","abstract":"

      Either size of decompressed data isn’t equal to the one specified in archive or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10wrongCheckFMS0_FV10Foundation4DataS0_":{"name":"wrongCheck","abstract":"

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

      Padding (null-bytes appended to an archive’s structure) is incorrect.

      ","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/TarError.html#/s:FO13SWCompression8TarError20tooSmallFileIsPassedFMS0_S0_":{"name":"tooSmallFileIsPassed","abstract":"

      Size of data is too small, even to contain only one header.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError16fieldIsNotNumberFMS0_S0_":{"name":"fieldIsNotNumber","abstract":"

      Failed to process a field as a number.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError19wrongHeaderChecksumFMS0_S0_":{"name":"wrongHeaderChecksum","abstract":"

      Computed checksum of a header doesn’t match the value stored in container.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError17wrongUstarVersionFMS0_S0_":{"name":"wrongUstarVersion","abstract":"

      Unsupported version of USTAR format.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError19wrongPaxHeaderEntryFMS0_S0_":{"name":"wrongPaxHeaderEntry","abstract":"

      Entry from PAX extended header is in incorrect format.

      ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError14notAsciiStringFMS0_S0_":{"name":"notAsciiString","abstract":"

      Failed to process a field as an ASCII string.

      ","parent_name":"TarError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15wrongPropertiesFMS0_S0_":{"name":"wrongProperties","abstract":"

      Properties’ byte is 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":"

      Size of uncompressed data hit specified 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/LZMAError.html#/s:FO13SWCompression9LZMAError23decoderIsNotInitialisedFMS0_S0_":{"name":"decoderIsNotInitialised","abstract":"

      LZMADecoder wasn’t properly initialized before decoding data.

      ","parent_name":"LZMAError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15wrongPropertiesFMS0_S0_":{"name":"wrongProperties","abstract":"

      Reserved bits of LZMA2 properties’ byte aren’t equal to zero.

      ","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19wrongDictionarySizeFMS0_S0_":{"name":"wrongDictionarySize","abstract":"

      Dictionary size is 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 encountered in LZMA2 packet.

      ","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10wrongSizesFMS0_S0_":{"name":"wrongSizes","abstract":"

      Either size of decompressed data isn’t equal to the one specified in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10wrongMagicFMS0_S0_":{"name":"wrongMagic","abstract":"

      First two bytes (‘magic’ number) of archive isn’t 31 and 139.

      ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

      Compression method used in archive is different from Deflate, which is the only supported one.

      ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10wrongFlagsFMS0_S0_":{"name":"wrongFlags","abstract":"

      One of the reserved fields in archive has an unexpected value, which can also mean (apart from damaged archive),","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14wrongHeaderCRCFMS0_S0_":{"name":"wrongHeaderCRC","abstract":"

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

      ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8wrongCRCFMS0_FV10Foundation4DataS0_":{"name":"wrongCRC","abstract":"

      Computed checksum of uncompressed data doesn’t match the value stored in 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/GzipError.html#/s:FO13SWCompression9GzipError21cannotEncodeISOLatin1FMS0_S0_":{"name":"cannotEncodeISOLatin1","abstract":"

      Either specified file name or comment cannot be encoded using ISO Latin-1 encoding.

      ","parent_name":"GzipError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29wrongUncompressedBlockLengthsFMS0_S0_":{"name":"wrongUncompressedBlockLengths","abstract":"

      Uncompressed block’s length and nlength bytes isn’t consistent with each other.

      ","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14wrongBlockTypeFMS0_S0_":{"name":"wrongBlockType","abstract":"

      Unknown block type (not 0, 1 or 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 wasn’t found in Huffman tree.

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

      ‘Magic’ number is not 0x425a.

      ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

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

      ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14wrongBlockSizeFMS0_S0_":{"name":"wrongBlockSize","abstract":"

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

      ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14wrongBlockTypeFMS0_S0_":{"name":"wrongBlockType","abstract":"

      Unsupported block type (is 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 is greater than the 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 wasn’t found in Huffman tree.

      ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error8wrongCRCFMS0_FV10Foundation4DataS0_":{"name":"wrongCRC","abstract":"

      Computed checksum of uncompressed data doesn’t match the value stored in archive.","parent_name":"BZip2Error"},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

      Represents an error, which happened during BZip2 decompression."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

      Represents an error, which happened during Deflate compression or decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

      Represents an error, which happened during processing GZip archive."},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

      Represents an error, which happened during LZMA2 decompression."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

      Represents an error, which happened during LZMA decompression."},"Enums/TarError.html":{"name":"TarError","abstract":"

      Represents an error, which happened during processing TAR container."},"Enums/XZError.html":{"name":"XZError","abstract":"

      Represents an error, which happened during unarchiving XZ archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

      Represents an error, which happened during processing ZIP container."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

      Represents an error, which happened during processing Zlib archive."},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType6normalFMS1_S1_":{"name":"normal","abstract":"

      Normal file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType8hardLinkFMS1_S1_":{"name":"hardLink","abstract":"

      Hard linked entry.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType12symbolicLinkFMS1_S1_":{"name":"symbolicLink","abstract":"

      Symbolically linked entry.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType16characterSpecialFMS1_S1_":{"name":"characterSpecial","abstract":"

      Character special file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType12blockSpecialFMS1_S1_":{"name":"blockSpecial","abstract":"

      Block special file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType9directoryFMS1_S1_":{"name":"directory","abstract":"

      Directory.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType4fifoFMS1_S1_":{"name":"fifo","abstract":"

      FIFO special file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType10contiguousFMS1_S1_":{"name":"contiguous","abstract":"

      Contiguous file.

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType20globalExtendedHeaderFMS1_S1_":{"name":"globalExtendedHeader","abstract":"

      PAX global extended header. (Should not be encountered separately).

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType19localExtendedHeaderFMS1_S1_":{"name":"localExtendedHeader","abstract":"

      PAX local extended header. (Should not be encountered separately).

      ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType23vendorUnknownOrReservedFMS1_S1_":{"name":"vendorUnknownOrReserved","abstract":"

      Either unknown type, vendor specific or reserved value.

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

      Represents a type of an entry.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4nameSS":{"name":"name","abstract":"

      Name of the file or directory.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry11isDirectorySb":{"name":"isDirectory","abstract":"

      True, if an entry is a directory.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4sizeSi":{"name":"size","abstract":"

      Size of the data associated with the entry.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

      Provides a dictionary with various attributes of the entry.","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4modeGSqSi_":{"name":"mode","abstract":"

      File mode.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7ownerIDGSqSi_":{"name":"ownerID","abstract":"

      Owner’s ID.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7groupIDGSqSi_":{"name":"groupID","abstract":"

      Owner’s group ID.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

      The most recent modification time of the original file or directory.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4typeOS0_9EntryType":{"name":"type","abstract":"

      Type of entry.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry13ownerUserNameGSqSS_":{"name":"ownerUserName","abstract":"

      Owner’s user name.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry14ownerGroupNameGSqSS_":{"name":"ownerGroupName","abstract":"

      Owner’s group name.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry10accessTimeGSqV10Foundation4Date_":{"name":"accessTime","abstract":"

      The most recent access time of the original file or directory (PAX only).

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7charsetGSqSS_":{"name":"charset","abstract":"

      Name of the character set used to encode entry’s data (PAX only).

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7commentGSqSS_":{"name":"comment","abstract":"

      Comment associated with the entry (PAX only).

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry8linkPathGSqSS_":{"name":"linkPath","abstract":"

      Path to a linked file.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry28unknownExtendedHeaderEntriesGVs10DictionarySSSS_":{"name":"unknownExtendedHeaderEntries","abstract":"

      Other entries from PAX extended headers.

      ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:FC13SWCompression8TarEntry4dataFT_V10Foundation4Data":{"name":"data()","abstract":"

      Returns data associated with this entry.

      ","parent_name":"TarEntry"},"Classes/TarContainer.html#/s:ZFC13SWCompression12TarContainer4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

      Processes TAR container and returns an array of ContainerEntries (which are actually TarEntries).

      ","parent_name":"TarContainer"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry4nameSS":{"name":"name","abstract":"

      Name of the file or directory.

      ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry7commentGSqSS_":{"name":"comment","abstract":"

      Comment associated with the entry.

      ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry10attributesVs6UInt32":{"name":"attributes","abstract":"

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

      ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry4sizeSi":{"name":"size","abstract":"

      Size of the data associated with the entry.

      ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry11isDirectorySb":{"name":"isDirectory","abstract":"

      True, if an entry is a directory.","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

      Provides a dictionary with various attributes of the entry.","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:FC13SWCompression8ZipEntry4dataFzT_V10Foundation4Data":{"name":"data()","abstract":"

      Returns data associated with this entry.

      ","parent_name":"ZipEntry"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

      Processes ZIP container and returns an array of ContainerEntries (which are actually ZipEntries).

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

      Provides open function for ZIP containers.

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

      Represents either a file or directory entry in ZIP container.

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

      Provides open function for TAR containers.

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

      Represents either a file or directory entry in TAR container.

      "},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

      Unarchives XZ archive.

      ","parent_name":"XZArchive"},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive14multiUnarchiveFzT7archiveV10Foundation4Data_GSaS2__":{"name":"multiUnarchive(archive:)","abstract":"

      Unarchives XZ archive which contains one or more streams.

      ","parent_name":"XZArchive"},"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. Currently, always equals to .deflate.

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

      Level of compression used in archive.

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

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

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

      Initializes the structure with the values from Zlib archive.

      ","parent_name":"ZlibHeader"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

      Unarchives Zlib archive.

      ","parent_name":"ZlibArchive"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

      Archives data into Zlib archive.","parent_name":"ZlibArchive"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

      One of many UNIX-like systems.

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

      Older Macintosh 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 is 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. Currently, always equals to .deflate.

      ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeGSqV10Foundation4Date_":{"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 archivation took place.

      ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader8fileNameGSqSS_":{"name":"fileName","abstract":"

      Name of the original file. If archive doesn’t contain file’s name, then nil.

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

      Comment stored in archive. If archive doesn’t contain any comment, then nil.

      ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader10isTextFileSb":{"name":"isTextFile","abstract":"

      Check if file is likely to be text file or ASCII-file.

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

      Initializes the structure with the values from the first ‘member’ of GZip archive.

      ","parent_name":"GzipHeader"},"Classes/GzipArchive/Member.html#/s:vVC13SWCompression11GzipArchive6Member6headerVS_10GzipHeader":{"name":"header","abstract":"

      GZip header of a member.

      ","parent_name":"Member"},"Classes/GzipArchive/Member.html#/s:vVC13SWCompression11GzipArchive6Member4dataV10Foundation4Data":{"name":"data","abstract":"

      Unarchived data from a member.

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

      Represents a member of multi-member of GZip archive.

      ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

      Unarchives GZip archive.

      ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive14multiUnarchiveFzT7archiveV10Foundation4Data_GSaVS0_6Member_":{"name":"multiUnarchive(archive:)","abstract":"

      Unarchives multi-member GZip archive.","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data7commentGSqSS_8fileNameGSqSS_14writeHeaderCRCSb10isTextFileSb6osTypeGSqOVS_10GzipHeader14FileSystemType_16modificationTimeGSqVS1_4Date__S2_":{"name":"archive(data:comment:fileName:writeHeaderCRC:isTextFile:osType:modificationTime:)","abstract":"

      Archives data into GZip archive, using various specified options.","parent_name":"GzipArchive"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

      Provides unarchive and archive functions for GZip archives.

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

      Represents a GZip archive’s header.

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

      Provides unarchive and archive functions for Zlib archives.

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

      Represents a Zlib archive’s header.

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

      Provides unarchive function for XZ archives.

      "},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

      Decompresses data using LZMA2 algortihm.

      ","parent_name":"LZMA2"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

      Decompresses data using LZMA algortihm.

      ","parent_name":"LZMA"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

      Decompresses data using Deflate algortihm.

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

      Compresses data with Deflate algortihm.

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

      Decompresses data using BZip2 algortihm.

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

      Provides decompression function for BZip2 algorithm.

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

      Provides compression and decompression functions for Deflate algorithm.

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

      Provides decompression function for LZMA algorithm.

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

      Provides decompression function for LZMA2 algorithm.

      "},"Compression.html":{"name":"Compression"},"Archives.html":{"name":"Archives"},"Containers.html":{"name":"Containers"},"Errors.html":{"name":"Errors"},"Protocols.html":{"name":"Protocols"}} \ 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 d9123cd2619b09f9c0e693c959e769fb72074cd6..3ef057dc35490aa70665139a2ba6d984b2f2e684 100644 GIT binary patch delta 6060 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 diff --git a/docs/docsets/SWCompression.tgz b/docs/docsets/SWCompression.tgz index 3c0dcaabc9bb9a24866023cb59ea67a28ccd5ac0..a22a20ce39a293ea868c263119014aa995231812 100644 GIT binary patch delta 106019 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�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 (3;> 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 diff --git a/docs/index.html b/docs/index.html index a10ec1d6..2535f684 100644 --- a/docs/index.html +++ b/docs/index.html @@ -22,7 +22,7 @@ SWCompression Docs - (97% documented) + (100% documented)

      @@ -50,7 +50,7 @@

      @@ -338,26 +343,28 @@ For example:

      There is a small program, swcomp, which uses SWCompression for unarchiving several types of archives.

      -

      Why is it so slow?

      +

      Performace

      -

      Version 2.0 came with a great performance improvement. -Just look at the Tests Results. -So if it’s slow the first thing you should do is to make sure you are using version >= 2.0.

      +

      TL;DR Constantly trying to improve performance; +use whole module optimizations, which are enabled by default for Release configurations.

      -

      Is it still slow? -Maybe you are compiling SWCompression not for ‘Release’ but with ‘Debug’ build configuration? -For some reason, when framework is built for ‘Debug’ its performance significantly worse. -You can once again check test results if you want to convince yourself that this is the case.

      +

      Further thoughts, details and notes about performance you can read in a separate document.

      -

      Finally, SWCompression’s code is not as optimized as original C/C++ versions of corresponding algorithms, -so some difference in speed is expected.

      +

      Tests Results document contains results of performance testing of various algorithms.

      +

      Known issues

      -

      To sum up, it is highly recommended to build SWCompression with ‘Release’ configuration and use the latest version (at least 2.0).

      +
        +
      • wrongCRC and wrongCheck errors for XZ and GZip multi-member archives +contain only last member’s data as their associated value instead of all successfully processed members.
      • +
      + +

      Comment: Philosophy for such errors is that by the time these errors are thrown, +decompression was already performed, so we can still provide the result of decompression to the caller. +It is intended to fix this problem, but solution requires backwards-incompatible API changes so it is delayed until 4.0 release.

      Future plans

      • Better Deflate compression.
      • -
      • Support for additional attributes in containers.
      • 7zip containers.
      • BZip2 compression.
      • Something else…
      • diff --git a/docs/search.json b/docs/search.json index 07c84080..a8ea549a 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. Currently, always equals to .deflate.

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

        Level of compression used in archive.

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

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

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

        Initializes the structure with the values from Zlib archive.

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

        One of many UNIX-like systems.

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

        Older Macintosh 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 is 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. Currently, always equals to .deflate.

        ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeGSqV10Foundation4Date_":{"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 archivation took place.

        ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader8fileNameGSqSS_":{"name":"fileName","abstract":"

        Name of the original file. If archive doesn’t contain file’s name, then nil.

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

        Comment stored in archive. If archive doesn’t contain any comment, then nil.

        ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader10isTextFileSb":{"name":"isTextFile","abstract":"

        Check if file is likely to be text file or ASCII-file.

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

        Initializes the structure with the values from the first ‘member’ of GZip archive.

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

        Represents a GZip archive’s header.

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

        Represents a Zlib archive’s header.

        "},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry4nameSS":{"name":"name","abstract":"

        Retrieve name of the entry from the container.

        ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry4sizeSi":{"name":"size","abstract":"

        Retrieve size of the entry’s data from the container.

        ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry11isDirectorySb":{"name":"isDirectory","abstract":"

        Check if entry is a directory.

        ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:FP13SWCompression14ContainerEntry4dataFzT_V10Foundation4Data":{"name":"data()","abstract":"

        Retrieve entry’s data from the container.

        ","parent_name":"ContainerEntry"},"Protocols/Container.html#/s:ZFP13SWCompression9Container4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

        Retrieve all the entries from the container.

        ","parent_name":"Container"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

        Decompress data compressed with particular algorithm.

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

        Unarchive data from the archive.

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

        A type that represents an archive.

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

        A type that provides an implementation of a particular decompression algorithm.

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

        A type that represents a container of files, directories and/or other data.

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

        A type that represents an entry from a container (file or directory) with attributes.

        "},"Enums/XZError.html#/s:FO13SWCompression7XZError10wrongMagicFMS0_S0_":{"name":"wrongMagic","abstract":"

        Either ‘magic’ number in header or footer isn’t equal to a predefined value.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15wrongFieldValueFMS0_S0_":{"name":"wrongFieldValue","abstract":"

        One of the fields in archive has an incorrect value.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18fieldReservedValueFMS0_S0_":{"name":"fieldReservedValue","abstract":"

        One of the reserved fields in archive has an unexpected value, which can also mean (apart from damaged archive),","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12wrongInfoCRCFMS0_S0_":{"name":"wrongInfoCRC","abstract":"

        Checksum of one of the fields of archive doesn’t match the value stored in archive.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13wrongFilterIDFMS0_S0_":{"name":"wrongFilterID","abstract":"

        Filter used in archvie is unsupported.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15checkTypeSHA256FMS0_S0_":{"name":"checkTypeSHA256","abstract":"

        Archive uses SHA-256 checksum which is unsupported.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13wrongDataSizeFMS0_S0_":{"name":"wrongDataSize","abstract":"

        Either size of decompressed data isn’t equal to the one specified in archive or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10wrongCheckFMS0_FV10Foundation4DataS0_":{"name":"wrongCheck","abstract":"

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

        Padding (null-bytes appended to an archive’s structure) is incorrect.

        ","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/TarError.html#/s:FO13SWCompression8TarError20tooSmallFileIsPassedFMS0_S0_":{"name":"tooSmallFileIsPassed","abstract":"

        Size of data is too small, even to contain only one header.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError16fieldIsNotNumberFMS0_S0_":{"name":"fieldIsNotNumber","abstract":"

        Failed to process a field as a number.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError19wrongHeaderChecksumFMS0_S0_":{"name":"wrongHeaderChecksum","abstract":"

        Computed checksum of a header doesn’t match the value stored in container.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError17wrongUstarVersionFMS0_S0_":{"name":"wrongUstarVersion","abstract":"

        Unsupported version of USTAR format.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError19wrongPaxHeaderEntryFMS0_S0_":{"name":"wrongPaxHeaderEntry","abstract":"

        Entry from PAX extended header is in incorrect format.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError14notAsciiStringFMS0_S0_":{"name":"notAsciiString","abstract":"

        Failed to process a field as an ASCII string.

        ","parent_name":"TarError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10wrongMagicFMS0_S0_":{"name":"wrongMagic","abstract":"

        ‘Magic’ number is not 0x425a.

        ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

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

        ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14wrongBlockSizeFMS0_S0_":{"name":"wrongBlockSize","abstract":"

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

        ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14wrongBlockTypeFMS0_S0_":{"name":"wrongBlockType","abstract":"

        Unsupported block type (is 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 is greater than the 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 wasn’t found in Huffman tree.

        ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error8wrongCRCFMS0_FV10Foundation4DataS0_":{"name":"wrongCRC","abstract":"

        Computed checksum of uncompressed data doesn’t match the value stored in archive.","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29wrongUncompressedBlockLengthsFMS0_S0_":{"name":"wrongUncompressedBlockLengths","abstract":"

        Uncompressed block’s length and nlength bytes isn’t consistent with each other.

        ","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14wrongBlockTypeFMS0_S0_":{"name":"wrongBlockType","abstract":"

        Unknown block type (not 0, 1 or 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 wasn’t found in Huffman tree.

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

        Compression method used in archive is different from Deflate, which is the only supported one.

        ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20wrongCompressionInfoFMS0_S0_":{"name":"wrongCompressionInfo","abstract":"

        Compression info has value incompatible with Deflate compression method.

        ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11wrongFcheckFMS0_S0_":{"name":"wrongFcheck","abstract":"

        First two bytes of archive’s flags are inconsistent with each other.

        ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21wrongCompressionLevelFMS0_S0_":{"name":"wrongCompressionLevel","abstract":"

        Compression level has value, which is different from the supported ones.

        ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12wrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"wrongAdler32","abstract":"

        Computed checksum of uncompressed data doesn’t match the value stored in archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15wrongPropertiesFMS0_S0_":{"name":"wrongProperties","abstract":"

        Properties’ byte is 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":"

        Size of uncompressed data hit specified 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/LZMAError.html#/s:FO13SWCompression9LZMAError23decoderIsNotInitialisedFMS0_S0_":{"name":"decoderIsNotInitialised","abstract":"

        LZMADecoder wasn’t properly initialized before decoding data.

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

        End of Central Directoty record wasn’t found.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14wrongSignatureFMS0_S0_":{"name":"wrongSignature","abstract":"

        Wrong signature of one of container’s structures.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9wrongSizeFMS0_S0_":{"name":"wrongSize","abstract":"

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

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12wrongVersionFMS0_S0_":{"name":"wrongVersion","abstract":"

        Version needed to process container is unsupported.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24multiVolumesNotSupportedFMS0_S0_":{"name":"multiVolumesNotSupported","abstract":"

        Container is either spanned or consists of several volumes. These features aren’t supported.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22encryptionNotSupportedFMS0_S0_":{"name":"encryptionNotSupported","abstract":"

        Entry or record is encrypted. This feature isn’t supported.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20patchingNotSupportedFMS0_S0_":{"name":"patchingNotSupported","abstract":"

        Entry contains patched data. This feature isn’t supported.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23compressionNotSupportedFMS0_S0_":{"name":"compressionNotSupported","abstract":"

        Entry is compressed using unsupported compression method.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16wrongLocalHeaderFMS0_S0_":{"name":"wrongLocalHeader","abstract":"

        Local header of an entry is inconsistent with Central Directory.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10wrongCRC32FMS0_FV10Foundation4DataS0_":{"name":"wrongCRC32","abstract":"

        Computed checksum of entry’s data doesn’t match the value stored in container.","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14wrongTextFieldFMS0_S0_":{"name":"wrongTextField","abstract":"

        Either entry’s comment or file name cannot be processed using UTF-8 encoding.

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

        First two bytes (‘magic’ number) of archive isn’t 31 and 139.

        ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

        Compression method used in archive is different from Deflate, which is the only supported one.

        ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10wrongFlagsFMS0_S0_":{"name":"wrongFlags","abstract":"

        One of the reserved fields in archive has an unexpected value, which can also mean (apart from damaged archive),","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14wrongHeaderCRCFMS0_S0_":{"name":"wrongHeaderCRC","abstract":"

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

        ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8wrongCRCFMS0_FV10Foundation4DataS0_":{"name":"wrongCRC","abstract":"

        Computed checksum of uncompressed data doesn’t match the value stored in 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/GzipError.html#/s:FO13SWCompression9GzipError21cannotEncodeISOLatin1FMS0_S0_":{"name":"cannotEncodeISOLatin1","abstract":"

        Either specified file name or comment cannot be encoded using ISO Latin-1 encoding.

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

        Reserved bits of LZMA2 properties’ byte aren’t equal to zero.

        ","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19wrongDictionarySizeFMS0_S0_":{"name":"wrongDictionarySize","abstract":"

        Dictionary size is 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 encountered in LZMA2 packet.

        ","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10wrongSizesFMS0_S0_":{"name":"wrongSizes","abstract":"

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

        Represents an error, which happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

        Represents an error, which happened during processing GZip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

        Represents an error, which happened during processing ZIP container."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

        Represents an error, which happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

        Represents an error, which happened during processing Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

        Represents an error, which happened during Deflate compression or decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

        Represents an error, which happened during BZip2 decompression."},"Enums/TarError.html":{"name":"TarError","abstract":"

        Represents an error, which happened during processing TAR container."},"Enums/XZError.html":{"name":"XZError","abstract":"

        Represents an error, which happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

        Unarchives XZ archive.

        ","parent_name":"XZArchive"},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive14multiUnarchiveFzT7archiveV10Foundation4Data_GSaS2__":{"name":"multiUnarchive(archive:)","abstract":"

        Undocumented

        ","parent_name":"XZArchive"},"Classes/TarContainer.html#/s:ZFC13SWCompression12TarContainer4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

        Processes TAR container and returns an array of ContainerEntries (which are actually TarEntries).

        ","parent_name":"TarContainer"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType6normalFMS1_S1_":{"name":"normal","abstract":"

        Normal file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType8hardLinkFMS1_S1_":{"name":"hardLink","abstract":"

        Hard linked entry.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType12symbolicLinkFMS1_S1_":{"name":"symbolicLink","abstract":"

        Symbolically linked entry.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType16characterSpecialFMS1_S1_":{"name":"characterSpecial","abstract":"

        Character special file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType12blockSpecialFMS1_S1_":{"name":"blockSpecial","abstract":"

        Block special file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType9directoryFMS1_S1_":{"name":"directory","abstract":"

        Directory.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType4fifoFMS1_S1_":{"name":"fifo","abstract":"

        FIFO special file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType10contiguousFMS1_S1_":{"name":"contiguous","abstract":"

        Contiguous file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType20globalExtendedHeaderFMS1_S1_":{"name":"globalExtendedHeader","abstract":"

        PAX global extended header. (Should not be encountered separately).

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType19localExtendedHeaderFMS1_S1_":{"name":"localExtendedHeader","abstract":"

        PAX local extended header. (Should not be encountered separately).

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType23vendorUnknownOrReservedFMS1_S1_":{"name":"vendorUnknownOrReserved","abstract":"

        Either unknown type, vendor specific or reserved value.

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

        Represents a type of an entry.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4nameSS":{"name":"name","abstract":"

        Name of the file or directory.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry11isDirectorySb":{"name":"isDirectory","abstract":"

        True, if an entry is a directory.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4sizeSi":{"name":"size","abstract":"

        Size of the data associated with the entry.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

        Provides a dictionary with various attributes of the entry.","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4modeGSqSi_":{"name":"mode","abstract":"

        File mode.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7ownerIDGSqSi_":{"name":"ownerID","abstract":"

        Owner’s ID.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7groupIDGSqSi_":{"name":"groupID","abstract":"

        Owner’s group ID.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

        The most recent modification time of the original file or directory.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4typeOS0_9EntryType":{"name":"type","abstract":"

        Type of entry.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry13ownerUserNameGSqSS_":{"name":"ownerUserName","abstract":"

        Owner’s user name.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry14ownerGroupNameGSqSS_":{"name":"ownerGroupName","abstract":"

        Owner’s group name.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry10accessTimeGSqV10Foundation4Date_":{"name":"accessTime","abstract":"

        The most recent access time of the original file or directory (PAX only).

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7charsetGSqSS_":{"name":"charset","abstract":"

        Name of the character set used to encode entry’s data (PAX only).

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7commentGSqSS_":{"name":"comment","abstract":"

        Comment associated with the entry (PAX only).

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry8linkPathGSqSS_":{"name":"linkPath","abstract":"

        Path to a linked file.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry28unknownExtendedHeaderEntriesGVs10DictionarySSSS_":{"name":"unknownExtendedHeaderEntries","abstract":"

        Other entries from PAX extended headers.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:FC13SWCompression8TarEntry4dataFT_V10Foundation4Data":{"name":"data()","abstract":"

        Returns data associated with this entry.

        ","parent_name":"TarEntry"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

        Decompresses data using BZip2 algortihm.

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

        Decompresses data using 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:ZFC13SWCompression11ZlibArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

        Unarchives Zlib archive.

        ","parent_name":"ZlibArchive"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

        Archives data into Zlib archive.","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

        Decompresses data using LZMA algortihm.

        ","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

        Processes ZIP container and returns an array of ContainerEntries (which are actually ZipEntries).

        ","parent_name":"ZipContainer"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry4nameSS":{"name":"name","abstract":"

        Name of the file or directory.

        ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry7commentGSqSS_":{"name":"comment","abstract":"

        Comment associated with the entry.

        ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry10attributesVs6UInt32":{"name":"attributes","abstract":"

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

        ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry4sizeSi":{"name":"size","abstract":"

        Size of the data associated with the entry.

        ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry11isDirectorySb":{"name":"isDirectory","abstract":"

        True, if an entry is a directory.","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

        Provides a dictionary with various attributes of the entry.","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:FC13SWCompression8ZipEntry4dataFzT_V10Foundation4Data":{"name":"data()","abstract":"

        Returns data associated with this entry.

        ","parent_name":"ZipEntry"},"Classes/GzipArchive/Member.html#/s:vVC13SWCompression11GzipArchive6Member6headerVS_10GzipHeader":{"name":"header","abstract":"

        Undocumented

        ","parent_name":"Member"},"Classes/GzipArchive/Member.html#/s:vVC13SWCompression11GzipArchive6Member4dataV10Foundation4Data":{"name":"data","abstract":"

        Undocumented

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

        Undocumented

        ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

        Unarchives GZip archive.

        ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive14multiUnarchiveFzT7archiveV10Foundation4Data_GSaVS0_6Member_":{"name":"multiUnarchive(archive:)","abstract":"

        Undocumented

        ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data7commentGSqSS_8fileNameGSqSS_14writeHeaderCRCSb10isTextFileSb6osTypeGSqOVS_10GzipHeader14FileSystemType_16modificationTimeGSqVS1_4Date__S2_":{"name":"archive(data:comment:fileName:writeHeaderCRC:isTextFile:osType:modificationTime:)","abstract":"

        Archives data into GZip archive, using various specified options.","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

        Decompresses data using LZMA2 algortihm.

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

        Provides decompression function for LZMA2 algorithm.

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

        Provides unarchive and archive functions for GZip archives.

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

        Represents either a file or directory entry in ZIP container.

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

        Provides open function for ZIP containers.

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

        Provides decompression function for LZMA algorithm.

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

        Provides unarchive and archive functions for Zlib archives.

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

        Provides compression and decompression functions for Deflate algorithm.

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

        Provides decompression function for BZip2 algorithm.

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

        Represents either a file or directory entry in TAR container.

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

        Provides open function for TAR containers.

        "},"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 +{"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

        Decompress data compressed with particular algorithm.

        ","parent_name":"DecompressionAlgorithm"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry4nameSS":{"name":"name","abstract":"

        Retrieve name of the entry from the container.

        ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry4sizeSi":{"name":"size","abstract":"

        Retrieve size of the entry’s data from the container.

        ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry11isDirectorySb":{"name":"isDirectory","abstract":"

        Check if entry is a directory.

        ","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:vP13SWCompression14ContainerEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

        Provides a dictionary with various attributes of the entry.","parent_name":"ContainerEntry"},"Protocols/ContainerEntry.html#/s:FP13SWCompression14ContainerEntry4dataFzT_V10Foundation4Data":{"name":"data()","abstract":"

        Retrieve entry’s data from the container.

        ","parent_name":"ContainerEntry"},"Protocols/Container.html#/s:ZFP13SWCompression9Container4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

        Retrieve all the entries from the container.

        ","parent_name":"Container"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

        Unarchive data from the archive.

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

        A type that represents an archive.

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

        A type that represents a container of files, directories and/or other data.

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

        A type that represents an entry from a container (file or directory) with attributes.

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

        A type that provides an implementation of a particular decompression algorithm.

        "},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

        Compression method used in archive is different from Deflate, which is the only supported one.

        ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20wrongCompressionInfoFMS0_S0_":{"name":"wrongCompressionInfo","abstract":"

        Compression info has value incompatible with Deflate compression method.

        ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11wrongFcheckFMS0_S0_":{"name":"wrongFcheck","abstract":"

        First two bytes of archive’s flags are inconsistent with each other.

        ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21wrongCompressionLevelFMS0_S0_":{"name":"wrongCompressionLevel","abstract":"

        Compression level has value, which is different from the supported ones.

        ","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12wrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"wrongAdler32","abstract":"

        Computed checksum of uncompressed data doesn’t match the value stored in archive.","parent_name":"ZlibError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27notFoundCentralDirectoryEndFMS0_S0_":{"name":"notFoundCentralDirectoryEnd","abstract":"

        End of Central Directoty record wasn’t found.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14wrongSignatureFMS0_S0_":{"name":"wrongSignature","abstract":"

        Wrong signature of one of container’s structures.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9wrongSizeFMS0_S0_":{"name":"wrongSize","abstract":"

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

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12wrongVersionFMS0_S0_":{"name":"wrongVersion","abstract":"

        Version needed to process container is unsupported.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24multiVolumesNotSupportedFMS0_S0_":{"name":"multiVolumesNotSupported","abstract":"

        Container is either spanned or consists of several volumes. These features aren’t supported.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22encryptionNotSupportedFMS0_S0_":{"name":"encryptionNotSupported","abstract":"

        Entry or record is encrypted. This feature isn’t supported.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20patchingNotSupportedFMS0_S0_":{"name":"patchingNotSupported","abstract":"

        Entry contains patched data. This feature isn’t supported.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23compressionNotSupportedFMS0_S0_":{"name":"compressionNotSupported","abstract":"

        Entry is compressed using unsupported compression method.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16wrongLocalHeaderFMS0_S0_":{"name":"wrongLocalHeader","abstract":"

        Local header of an entry is inconsistent with Central Directory.

        ","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10wrongCRC32FMS0_FV10Foundation4DataS0_":{"name":"wrongCRC32","abstract":"

        Computed checksum of entry’s data doesn’t match the value stored in container.","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14wrongTextFieldFMS0_S0_":{"name":"wrongTextField","abstract":"

        Either entry’s comment or file name cannot be processed using UTF-8 encoding.

        ","parent_name":"ZipError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10wrongMagicFMS0_S0_":{"name":"wrongMagic","abstract":"

        Either ‘magic’ number in header or footer isn’t equal to a predefined value.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15wrongFieldValueFMS0_S0_":{"name":"wrongFieldValue","abstract":"

        One of the fields in archive has an incorrect value.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18fieldReservedValueFMS0_S0_":{"name":"fieldReservedValue","abstract":"

        One of the reserved fields in archive has an unexpected value, which can also mean (apart from damaged archive),","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12wrongInfoCRCFMS0_S0_":{"name":"wrongInfoCRC","abstract":"

        Checksum of one of the fields of archive doesn’t match the value stored in archive.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13wrongFilterIDFMS0_S0_":{"name":"wrongFilterID","abstract":"

        Filter used in archvie is unsupported.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15checkTypeSHA256FMS0_S0_":{"name":"checkTypeSHA256","abstract":"

        Archive uses SHA-256 checksum which is unsupported.

        ","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13wrongDataSizeFMS0_S0_":{"name":"wrongDataSize","abstract":"

        Either size of decompressed data isn’t equal to the one specified in archive or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10wrongCheckFMS0_FV10Foundation4DataS0_":{"name":"wrongCheck","abstract":"

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

        Padding (null-bytes appended to an archive’s structure) is incorrect.

        ","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/TarError.html#/s:FO13SWCompression8TarError20tooSmallFileIsPassedFMS0_S0_":{"name":"tooSmallFileIsPassed","abstract":"

        Size of data is too small, even to contain only one header.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError16fieldIsNotNumberFMS0_S0_":{"name":"fieldIsNotNumber","abstract":"

        Failed to process a field as a number.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError19wrongHeaderChecksumFMS0_S0_":{"name":"wrongHeaderChecksum","abstract":"

        Computed checksum of a header doesn’t match the value stored in container.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError17wrongUstarVersionFMS0_S0_":{"name":"wrongUstarVersion","abstract":"

        Unsupported version of USTAR format.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError19wrongPaxHeaderEntryFMS0_S0_":{"name":"wrongPaxHeaderEntry","abstract":"

        Entry from PAX extended header is in incorrect format.

        ","parent_name":"TarError"},"Enums/TarError.html#/s:FO13SWCompression8TarError14notAsciiStringFMS0_S0_":{"name":"notAsciiString","abstract":"

        Failed to process a field as an ASCII string.

        ","parent_name":"TarError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15wrongPropertiesFMS0_S0_":{"name":"wrongProperties","abstract":"

        Properties’ byte is 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":"

        Size of uncompressed data hit specified 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/LZMAError.html#/s:FO13SWCompression9LZMAError23decoderIsNotInitialisedFMS0_S0_":{"name":"decoderIsNotInitialised","abstract":"

        LZMADecoder wasn’t properly initialized before decoding data.

        ","parent_name":"LZMAError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15wrongPropertiesFMS0_S0_":{"name":"wrongProperties","abstract":"

        Reserved bits of LZMA2 properties’ byte aren’t equal to zero.

        ","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19wrongDictionarySizeFMS0_S0_":{"name":"wrongDictionarySize","abstract":"

        Dictionary size is 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 encountered in LZMA2 packet.

        ","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10wrongSizesFMS0_S0_":{"name":"wrongSizes","abstract":"

        Either size of decompressed data isn’t equal to the one specified in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10wrongMagicFMS0_S0_":{"name":"wrongMagic","abstract":"

        First two bytes (‘magic’ number) of archive isn’t 31 and 139.

        ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

        Compression method used in archive is different from Deflate, which is the only supported one.

        ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10wrongFlagsFMS0_S0_":{"name":"wrongFlags","abstract":"

        One of the reserved fields in archive has an unexpected value, which can also mean (apart from damaged archive),","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14wrongHeaderCRCFMS0_S0_":{"name":"wrongHeaderCRC","abstract":"

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

        ","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8wrongCRCFMS0_FV10Foundation4DataS0_":{"name":"wrongCRC","abstract":"

        Computed checksum of uncompressed data doesn’t match the value stored in 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/GzipError.html#/s:FO13SWCompression9GzipError21cannotEncodeISOLatin1FMS0_S0_":{"name":"cannotEncodeISOLatin1","abstract":"

        Either specified file name or comment cannot be encoded using ISO Latin-1 encoding.

        ","parent_name":"GzipError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29wrongUncompressedBlockLengthsFMS0_S0_":{"name":"wrongUncompressedBlockLengths","abstract":"

        Uncompressed block’s length and nlength bytes isn’t consistent with each other.

        ","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14wrongBlockTypeFMS0_S0_":{"name":"wrongBlockType","abstract":"

        Unknown block type (not 0, 1 or 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 wasn’t found in Huffman tree.

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

        ‘Magic’ number is not 0x425a.

        ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22wrongCompressionMethodFMS0_S0_":{"name":"wrongCompressionMethod","abstract":"

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

        ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14wrongBlockSizeFMS0_S0_":{"name":"wrongBlockSize","abstract":"

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

        ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14wrongBlockTypeFMS0_S0_":{"name":"wrongBlockType","abstract":"

        Unsupported block type (is 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 is greater than the 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 wasn’t found in Huffman tree.

        ","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error8wrongCRCFMS0_FV10Foundation4DataS0_":{"name":"wrongCRC","abstract":"

        Computed checksum of uncompressed data doesn’t match the value stored in archive.","parent_name":"BZip2Error"},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

        Represents an error, which happened during BZip2 decompression."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

        Represents an error, which happened during Deflate compression or decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

        Represents an error, which happened during processing GZip archive."},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

        Represents an error, which happened during LZMA2 decompression."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

        Represents an error, which happened during LZMA decompression."},"Enums/TarError.html":{"name":"TarError","abstract":"

        Represents an error, which happened during processing TAR container."},"Enums/XZError.html":{"name":"XZError","abstract":"

        Represents an error, which happened during unarchiving XZ archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

        Represents an error, which happened during processing ZIP container."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

        Represents an error, which happened during processing Zlib archive."},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType6normalFMS1_S1_":{"name":"normal","abstract":"

        Normal file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType8hardLinkFMS1_S1_":{"name":"hardLink","abstract":"

        Hard linked entry.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType12symbolicLinkFMS1_S1_":{"name":"symbolicLink","abstract":"

        Symbolically linked entry.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType16characterSpecialFMS1_S1_":{"name":"characterSpecial","abstract":"

        Character special file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType12blockSpecialFMS1_S1_":{"name":"blockSpecial","abstract":"

        Block special file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType9directoryFMS1_S1_":{"name":"directory","abstract":"

        Directory.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType4fifoFMS1_S1_":{"name":"fifo","abstract":"

        FIFO special file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType10contiguousFMS1_S1_":{"name":"contiguous","abstract":"

        Contiguous file.

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType20globalExtendedHeaderFMS1_S1_":{"name":"globalExtendedHeader","abstract":"

        PAX global extended header. (Should not be encountered separately).

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType19localExtendedHeaderFMS1_S1_":{"name":"localExtendedHeader","abstract":"

        PAX local extended header. (Should not be encountered separately).

        ","parent_name":"EntryType"},"Classes/TarEntry/EntryType.html#/s:FOC13SWCompression8TarEntry9EntryType23vendorUnknownOrReservedFMS1_S1_":{"name":"vendorUnknownOrReserved","abstract":"

        Either unknown type, vendor specific or reserved value.

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

        Represents a type of an entry.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4nameSS":{"name":"name","abstract":"

        Name of the file or directory.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry11isDirectorySb":{"name":"isDirectory","abstract":"

        True, if an entry is a directory.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4sizeSi":{"name":"size","abstract":"

        Size of the data associated with the entry.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

        Provides a dictionary with various attributes of the entry.","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4modeGSqSi_":{"name":"mode","abstract":"

        File mode.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7ownerIDGSqSi_":{"name":"ownerID","abstract":"

        Owner’s ID.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7groupIDGSqSi_":{"name":"groupID","abstract":"

        Owner’s group ID.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

        The most recent modification time of the original file or directory.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry4typeOS0_9EntryType":{"name":"type","abstract":"

        Type of entry.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry13ownerUserNameGSqSS_":{"name":"ownerUserName","abstract":"

        Owner’s user name.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry14ownerGroupNameGSqSS_":{"name":"ownerGroupName","abstract":"

        Owner’s group name.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry10accessTimeGSqV10Foundation4Date_":{"name":"accessTime","abstract":"

        The most recent access time of the original file or directory (PAX only).

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7charsetGSqSS_":{"name":"charset","abstract":"

        Name of the character set used to encode entry’s data (PAX only).

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry7commentGSqSS_":{"name":"comment","abstract":"

        Comment associated with the entry (PAX only).

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry8linkPathGSqSS_":{"name":"linkPath","abstract":"

        Path to a linked file.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:vC13SWCompression8TarEntry28unknownExtendedHeaderEntriesGVs10DictionarySSSS_":{"name":"unknownExtendedHeaderEntries","abstract":"

        Other entries from PAX extended headers.

        ","parent_name":"TarEntry"},"Classes/TarEntry.html#/s:FC13SWCompression8TarEntry4dataFT_V10Foundation4Data":{"name":"data()","abstract":"

        Returns data associated with this entry.

        ","parent_name":"TarEntry"},"Classes/TarContainer.html#/s:ZFC13SWCompression12TarContainer4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

        Processes TAR container and returns an array of ContainerEntries (which are actually TarEntries).

        ","parent_name":"TarContainer"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry4nameSS":{"name":"name","abstract":"

        Name of the file or directory.

        ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry7commentGSqSS_":{"name":"comment","abstract":"

        Comment associated with the entry.

        ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry10attributesVs6UInt32":{"name":"attributes","abstract":"

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

        ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry4sizeSi":{"name":"size","abstract":"

        Size of the data associated with the entry.

        ","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry11isDirectorySb":{"name":"isDirectory","abstract":"

        True, if an entry is a directory.","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:vC13SWCompression8ZipEntry15entryAttributesGVs10DictionaryVSC16FileAttributeKeyP__":{"name":"entryAttributes","abstract":"

        Provides a dictionary with various attributes of the entry.","parent_name":"ZipEntry"},"Classes/ZipEntry.html#/s:FC13SWCompression8ZipEntry4dataFzT_V10Foundation4Data":{"name":"data()","abstract":"

        Returns data associated with this entry.

        ","parent_name":"ZipEntry"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT9containerV10Foundation4Data_GSaPS_14ContainerEntry__":{"name":"open(container:)","abstract":"

        Processes ZIP container and returns an array of ContainerEntries (which are actually ZipEntries).

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

        Provides open function for ZIP containers.

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

        Represents either a file or directory entry in ZIP container.

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

        Provides open function for TAR containers.

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

        Represents either a file or directory entry in TAR container.

        "},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

        Unarchives XZ archive.

        ","parent_name":"XZArchive"},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive14multiUnarchiveFzT7archiveV10Foundation4Data_GSaS2__":{"name":"multiUnarchive(archive:)","abstract":"

        Unarchives XZ archive which contains one or more streams.

        ","parent_name":"XZArchive"},"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. Currently, always equals to .deflate.

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

        Level of compression used in archive.

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

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

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

        Initializes the structure with the values from Zlib archive.

        ","parent_name":"ZlibHeader"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

        Unarchives Zlib archive.

        ","parent_name":"ZlibArchive"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

        Archives data into Zlib archive.","parent_name":"ZlibArchive"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

        One of many UNIX-like systems.

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

        Older Macintosh 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 is 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. Currently, always equals to .deflate.

        ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeGSqV10Foundation4Date_":{"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 archivation took place.

        ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader8fileNameGSqSS_":{"name":"fileName","abstract":"

        Name of the original file. If archive doesn’t contain file’s name, then nil.

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

        Comment stored in archive. If archive doesn’t contain any comment, then nil.

        ","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader10isTextFileSb":{"name":"isTextFile","abstract":"

        Check if file is likely to be text file or ASCII-file.

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

        Initializes the structure with the values from the first ‘member’ of GZip archive.

        ","parent_name":"GzipHeader"},"Classes/GzipArchive/Member.html#/s:vVC13SWCompression11GzipArchive6Member6headerVS_10GzipHeader":{"name":"header","abstract":"

        GZip header of a member.

        ","parent_name":"Member"},"Classes/GzipArchive/Member.html#/s:vVC13SWCompression11GzipArchive6Member4dataV10Foundation4Data":{"name":"data","abstract":"

        Unarchived data from a member.

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

        Represents a member of multi-member of GZip archive.

        ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT7archiveV10Foundation4Data_S2_":{"name":"unarchive(archive:)","abstract":"

        Unarchives GZip archive.

        ","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive14multiUnarchiveFzT7archiveV10Foundation4Data_GSaVS0_6Member_":{"name":"multiUnarchive(archive:)","abstract":"

        Unarchives multi-member GZip archive.","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data7commentGSqSS_8fileNameGSqSS_14writeHeaderCRCSb10isTextFileSb6osTypeGSqOVS_10GzipHeader14FileSystemType_16modificationTimeGSqVS1_4Date__S2_":{"name":"archive(data:comment:fileName:writeHeaderCRC:isTextFile:osType:modificationTime:)","abstract":"

        Archives data into GZip archive, using various specified options.","parent_name":"GzipArchive"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

        Provides unarchive and archive functions for GZip archives.

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

        Represents a GZip archive’s header.

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

        Provides unarchive and archive functions for Zlib archives.

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

        Represents a Zlib archive’s header.

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

        Provides unarchive function for XZ archives.

        "},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

        Decompresses data using LZMA2 algortihm.

        ","parent_name":"LZMA2"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

        Decompresses data using LZMA algortihm.

        ","parent_name":"LZMA"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT4dataV10Foundation4Data_S2_":{"name":"decompress(data:)","abstract":"

        Decompresses data using Deflate algortihm.

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

        Compresses data with Deflate algortihm.

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

        Decompresses data using BZip2 algortihm.

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

        Provides decompression function for BZip2 algorithm.

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

        Provides compression and decompression functions for Deflate algorithm.

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

        Provides decompression function for LZMA algorithm.

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

        Provides decompression function for LZMA2 algorithm.

        "},"Compression.html":{"name":"Compression"},"Archives.html":{"name":"Archives"},"Containers.html":{"name":"Containers"},"Errors.html":{"name":"Errors"},"Protocols.html":{"name":"Protocols"}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index 11080fec..f43c0df0 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -1,40 +1,6 @@ { "warnings": [ - { - "file": "/Users/timofeysolomko/Developer/Compression/SWCompression/Sources/GzipArchive.swift", - "line": 191, - "symbol": "GzipArchive.Member", - "symbol_kind": "source.lang.swift.decl.struct", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/Compression/SWCompression/Sources/GzipArchive.swift", - "line": 192, - "symbol": "GzipArchive.Member.header", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/Compression/SWCompression/Sources/GzipArchive.swift", - "line": 193, - "symbol": "GzipArchive.Member.data", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/Compression/SWCompression/Sources/GzipArchive.swift", - "line": 220, - "symbol": "GzipArchive.multiUnarchive(archive:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - }, - { - "file": "/Users/timofeysolomko/Developer/Compression/SWCompression/Sources/XZArchive.swift", - "line": 96, - "symbol": "XZArchive.multiUnarchive(archive:)", - "symbol_kind": "source.lang.swift.decl.function.method.static", - "warning": "undocumented" - } + ], "source_directory": "/Users/timofeysolomko/Developer/Compression/SWCompression" } \ No newline at end of file