bobzhang/zip/file does not have a README file

    File

    pub struct File {
    version_made_by : UInt16
    version_needed_to_extract : UInt16
    gp_flags : UInt16
    compression :
    Compression

    start : Int
    compressed_size : Int
    compressed_bytes : Bytes
    decompressed_size : Int
    decompressed_crc32 : UInt
    }

    File data in a ZIP archive

    Represents a single file entry with its compressed data and metadata. This struct stores the essential information from both the Local File Header and Central Directory File Header as defined in the ZIP specification.

    ZIP Format Background

    The ZIP file format stores files in a specific structure:
    1. Local file header + compressed data (for each file)
    2. Central directory (index of all files)
    3. End of central directory record (EOCD)

    This struct combines the metadata from these structures.

    File::can_extract

    fn File::can_extract(self : File) -> Bool

    Check if we can extract (decompress) this file True if decompression supported and file not encrypted.

    File::compressed_bytes

    fn File::compressed_bytes(self : File) -> Bytes

    Get compressed bytes (the full buffer)

    File::compressed_bytes_to_bytes

    fn File::compressed_bytes_to_bytes(self : File) -> Bytes

    Extract just the compressed data as a standalone Bytes object Copy out just this file's compressed payload into a fresh Bytes buffer.

    File::compressed_size

    fn File::compressed_size(self : File) -> Int

    Get compressed size

    File::compression

    Get compression format

    File::decompressed_crc32

    fn File::decompressed_crc32(self : File) -> UInt

    Get decompressed CRC-32

    File::decompressed_size

    fn File::decompressed_size(self : File) -> Int

    Get decompressed size

    File::deflate_of_bytes

    fn File::deflate_of_bytes(bytes : Bytes, start : Int, len : Int, level? :
    DeflateLevel
    ) -> File raise

    Create deflate-compressed file data from bytes Uses LZ77 + Huffman compression with optimal block type selection Compress raw bytes using DEFLATE at optional level and wrap as File. Chooses dynamic vs fixed Huffman based on size & level.

    File::gp_flags

    fn File::gp_flags(self : File) -> UInt16

    Get general purpose flags

    File::is_encrypted

    fn File::is_encrypted(self : File) -> Bool

    Check if file is encrypted Whether general-purpose bit flag indicates encryption (unsupported here).

    File::make

    fn File::make(compressed_bytes : Bytes, start : Int, compressed_size : Int, compression :
    Compression
    , decompressed_size : Int, decompressed_crc32 : UInt, version_made_by? : UInt16, version_needed? : UInt16, gp_flags? : UInt16) -> File raise

    Create file data from compressed bytes Build a File metadata + data wrapper from already-compressed content. Performs size limit checks and applies default versions/flags if optionals are None.

    File::start

    fn File::start(self : File) -> Int

    Get start offset in compressed_bytes

    File::stored_of_bytes

    fn File::stored_of_bytes(bytes : Bytes, start : Int, len : Int) -> File raise

    Create stored (uncompressed) file data from bytes Construct a Stored (uncompressed) File directly from raw bytes. Computes CRC-32 and sets compression=Stored.

    File::to_bytes

    fn File::to_bytes(self : File) -> Bytes raise

    Decompress file data with CRC check Decompress and validate CRC-32, raising on mismatch.

    File::to_bytes_no_crc_check

    fn File::to_bytes_no_crc_check(self : File) -> (Bytes, UInt) raise

    Decompress file data without CRC check Decompress to bytes (or copy if stored) and return (data, computed_crc32) without verifying.

    File::version_made_by

    fn File::version_made_by(self : File) -> UInt16

    Get version made by

    File::version_needed_to_extract

    fn File::version_needed_to_extract(self : File) -> UInt16

    Get version needed to extract

    gp_flag_default

    let gp_flag_default : UInt16

    gp_flag_encrypted

    let gp_flag_encrypted : UInt16

    Default values for ZIP file metadata

    gp_flag_utf8

    let gp_flag_utf8 : UInt16

    max_file_size

    let max_file_size : Int64

    Maximum file size in non-ZIP64 archives

    version_made_by_default

    let version_made_by_default : UInt16

    version_needed_default

    let version_needed_default : UInt16

    Source Files

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io