Mercurial > core / lisp/lib/io/zstd.lisp
changeset 698: |
96958d3eb5b0 |
parent: |
e048ca31ad61
|
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Fri, 04 Oct 2024 22:04:59 -0400 |
permissions: |
-rw-r--r-- |
description: |
fixes |
1 ;;; zstd.lisp --- Zstd IO API 8 (eval-always (deferror zstd-error (io-error) () (:auto t))) 10 (deferror zstd-input-error (zstd-error) () (:auto t)) 11 (deferror zstd-output-error (zstd-error) () (:auto t)) 13 (deferror zstd-checksum-error (zstd-error) () (:auto t)) 14 (deferror zstd-dictionary-error (zstd-error) () (:auto t)) 16 (defclass zstd-input () 17 ((input :initform (sb-alien:make-alien zstd:zstd-inbuffer) :type zstd:zstd-inbuffer))) 19 (defclass zstd-output () 20 ((output :initform (zstd::allocate-zstd-outbuffer) :type zstd:zstd-outbuffer))) 22 (defclass zstd-compressor (compressor zstd-input zstd-output) 23 ((stream :initform nil :type (or null zstd:zstd-cstream)))) 25 (defclass zstd-decompressor (decompressor zstd-input zstd-output) 26 ((stream :initform nil :type (or null zstd::zstd-dstream)))) 29 (defmacro with-zstd-output ((sym &optional buffer (level #.zstd:+zstd-clevel-default+)) &body body) 30 `(let ((,sym ,(or buffer 31 (make-array #.io/flate:*compression-buffer-size* 32 :element-type 'std:octet 35 (zstd:zstdc ,sym ,level))) 37 (defmacro with-zstd-input ((sym buffer) &body body))