         guard CheckSums.crc32([0, checkType.toUInt8()]) == flagsCRC
             else { throw XZError.WrongFlagsCRC }
 
-        return StreamHeader(checkType: checkType, flagsCRC: flagsCRC)
+        return (checkType, flagsCRC)
     }
 
     private static func processBlock(_ blockHeaderSize: UInt8,

/// A class with unarchive function for xz archives.
public class XZArchive: Archive {

    private struct StreamHeader {
        let checkType: Int
        let flagsCRC: Int
    }

    /**
     Unarchives xz archive stored in `archiveData`.


            else { throw XZError.WrongIndexCRC }
    }

    private static func processFooter(_ streamHeader: (checkType: Int, flagsCRC: Int),
                                      _ pointerData: inout DataWithPointer) throws {
        let footerCRC = pointerData.intFromAlignedBytes(count: 4)
        let storedBackwardSize = pointerData.alignedBytes(count: 4)
