[LZ4] Add an empty implementation of LZ4

This commit is contained in:
Timofey Solomko
2021-09-23 21:50:35 +03:00
parent 135f4c3bcd
commit de4fcb29cf
2 changed files with 32 additions and 0 deletions
+12
View File
@@ -221,6 +221,7 @@
E66F36242538726E00076A6E /* test_empty.lzma in Resources */ = {isa = PBXBuildFile; fileRef = E66F36232538726E00076A6E /* test_empty.lzma */; };
E66F362C2538E2B700076A6E /* test_empty.zlib in Resources */ = {isa = PBXBuildFile; fileRef = E66F362B2538E2B700076A6E /* test_empty.zlib */; };
E6791E1826FD001A003852A9 /* DataError.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6791E1726FD001A003852A9 /* DataError.swift */; };
E6791E1B26FD0094003852A9 /* LZ4.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6791E1A26FD0094003852A9 /* LZ4.swift */; };
E6EDD6A826F7767F00884532 /* test_minor_version_3.7z in Resources */ = {isa = PBXBuildFile; fileRef = E6EDD6A626F7767E00884532 /* test_minor_version_3.7z */; };
E6EDD6A926F7767F00884532 /* test_minor_version_4.7z in Resources */ = {isa = PBXBuildFile; fileRef = E6EDD6A726F7767E00884532 /* test_minor_version_4.7z */; };
E6EDD6AC26F77C0E00884532 /* test_minor_version_2.7z in Resources */ = {isa = PBXBuildFile; fileRef = E6EDD6AB26F77C0E00884532 /* test_minor_version_2.7z */; };
@@ -452,6 +453,7 @@
E66F36232538726E00076A6E /* test_empty.lzma */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_empty.lzma; sourceTree = "<group>"; };
E66F362B2538E2B700076A6E /* test_empty.zlib */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_empty.zlib; sourceTree = "<group>"; };
E6791E1726FD001A003852A9 /* DataError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataError.swift; sourceTree = "<group>"; };
E6791E1A26FD0094003852A9 /* LZ4.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LZ4.swift; sourceTree = "<group>"; };
E6EDD6A626F7767E00884532 /* test_minor_version_3.7z */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_minor_version_3.7z; sourceTree = "<group>"; };
E6EDD6A726F7767E00884532 /* test_minor_version_4.7z */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_minor_version_4.7z; sourceTree = "<group>"; };
E6EDD6AB26F77C0E00884532 /* test_minor_version_2.7z */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_minor_version_2.7z; sourceTree = "<group>"; };
@@ -590,6 +592,7 @@
0680B4C31F8814C400C5F253 /* BZip2 */,
0680B4C41F8814EB00C5F253 /* LZMA */,
06A1728C1FA5DCF00048A89C /* LZMA2 */,
E6791E1926FD0070003852A9 /* LZ4 */,
0680B4C61F88151400C5F253 /* XZ */,
06C936831F881A0B008BBF0E /* GZip */,
06C936841F881A28008BBF0E /* Zlib */,
@@ -917,6 +920,14 @@
path = BZip2;
sourceTree = "<group>";
};
E6791E1926FD0070003852A9 /* LZ4 */ = {
isa = PBXGroup;
children = (
E6791E1A26FD0094003852A9 /* LZ4.swift */,
);
path = LZ4;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -1163,6 +1174,7 @@
06A960561F1E7D0B0078E6D1 /* 7zPackInfo.swift in Sources */,
06DE29B81FB7024C0098A761 /* LittleEndianByteReader+Zip.swift in Sources */,
06BAC5941F8CFF28002443F4 /* ZipEntryInfo.swift in Sources */,
E6791E1B26FD0094003852A9 /* LZ4.swift in Sources */,
0625C49F1FB4B92F00A52C43 /* CompressionMethod+7z.swift in Sources */,
0620F4B31F8E2477001C9B7A /* ContainerEntry.swift in Sources */,
061C06301F0E8A4900832F0C /* ZlibError.swift in Sources */,
+20
View File
@@ -0,0 +1,20 @@
// Copyright (c) 2021 Timofey Solomko
// Licensed under MIT License
//
// See LICENSE for license information
import Foundation
import BitByteData
public enum LZ4: DecompressionAlgorithm {
public static func decompress(data: Data) throws -> Data {
let reader = LittleEndianByteReader(data: data)
// TODO: Switch between frame and block decoding modes?
// TODO: Small/empty data size check.
guard reader.uint32() == 0x184D2204
else { throw DataError.corrupted }
fatalError("Not implemented yet")
}
}