Manuscript Documentation
v0.1.0

@std/compress.ms#

Import each required symbol with import Name from "@std/compress.ms".

CompressionError Alternative#

Errors returned when compressed data is unsupported, invalid, or exceeds a limit.

Manuscript
type CompressionError:
    case InvalidInput
    case InvalidData
    case LimitExceeded
    case Unsupported
    case Failed(message: String)
Manuscript
impl Error for CompressionError:
    fn message() -> String:

CompressionError.Failed#

An explicit implementation-supplied compression diagnostic; native codecs use specific cases.

Manuscript
case Failed(message: String)

CompressionError.InvalidData#

Compressed framing, checksum, payload or trailing data is invalid for the chosen format.

Manuscript
case InvalidData

CompressionError.InvalidInput#

Compression level is outside 0..9, or a supplied encoded/decoded byte budget is negative.

Manuscript
case InvalidInput

CompressionError.LimitExceeded#

Encoded or decompressed output exceeds the supplied byte budget.

Manuscript
case LimitExceeded

CompressionError.Unsupported#

A String selector is not exactly gzip, zlib or deflate; typed selectors avoid spelling errors.

Manuscript
case Unsupported

CompressionError.Failed.message#

Original diagnostic text, returned unchanged by message().

Manuscript
message: String

CompressionError.Error.message#

Returns original Failed text, or a compression-prefixed diagnostic for other cases.

Manuscript
fn message() -> String:

CompressionFormat Alternative#

Selects a supported compression format; Deflate is raw DEFLATE without a wrapper. Existing compress/decompress format: String calls remain available.

Manuscript
type CompressionFormat:
    case Gzip
    case Zlib
    case Deflate
    fn compress(data: Bytes, level: Int = 6, max_bytes: Optional[Int] = none) -> Result[Bytes, CompressionError]:
    fn decompress(data: Bytes, max_bytes: Optional[Int] = none) -> Result[Bytes, CompressionError]:

CompressionFormat.Deflate#

Raw DEFLATE without framing.

Manuscript
case Deflate

CompressionFormat.Gzip#

DEFLATE data wrapped in GZIP headers and a checksum trailer.

Manuscript
case Gzip

CompressionFormat.Zlib#

DEFLATE data with ZLIB header and Adler-32 checksum framing.

Manuscript
case Zlib

CompressionFormat.compress#

Compresses with level 6 by default; explicit levels remain 0..9 (0 stores data). Uses the same optional output budget/domain errors as compress.

Manuscript
fn compress(data: Bytes, level: Int = 6, max_bytes: Optional[Int] = none) -> Result[Bytes, CompressionError]:

CompressionFormat.decompress#

Decompresses with the same cumulative output limit and validation as decompress.

Manuscript
fn decompress(data: Bytes, max_bytes: Optional[Int] = none) -> Result[Bytes, CompressionError]:

compress Function#

Compresses using exactly gzip, zlib, or raw deflate (case-sensitive). Other formats return Unsupported; level defaults to 6 (balanced DEFLATE compression). Explicit levels must be 0..9 (0 stores data), else InvalidInput. max_bytes bounds the encoded output when supplied.

Manuscript
fn compress(data: Bytes, format: String, level: Int = 6, max_bytes: Optional[Int] = none) -> Result[Bytes, CompressionError]:

decompress Function#

Decompresses exactly gzip, zlib, or raw deflate (case-sensitive); others return Unsupported. Stops when the supplied output limit is reached.

Manuscript
fn decompress(data: Bytes, format: String, max_bytes: Optional[Int] = none) -> Result[Bytes, CompressionError]: