Skip to main content

ps_compress/
error.rs

1use ps_buffer::BufferError;
2use thiserror::Error;
3
4/// Errors returned by [`compress`](crate::compress) and [`compress_into`](crate::compress_into).
5#[derive(Error, Debug, Clone, PartialEq, Eq)]
6pub enum CompressionError {
7    /// Output buffer allocation failed.
8    #[error(transparent)]
9    BufferError(#[from] BufferError),
10    /// The output buffer is too small for the compressed data.
11    #[error("Insufficient buffer size, output too large")]
12    InsufficientSpace,
13    /// zstd reported a compression failure.
14    #[error("Compression error")]
15    CodecError,
16}
17
18/// Errors returned by [`decompress`](crate::decompress), [`decompress_bounded`](crate::decompress_bounded), and [`decompress_into`](crate::decompress_into).
19#[derive(Error, Debug, Clone, PartialEq, Eq)]
20pub enum DecompressionError {
21    /// Output buffer allocation failed.
22    #[error(transparent)]
23    BufferError(#[from] BufferError),
24    /// The input is not valid zstd data or lacks required frame metadata.
25    #[error("Decompression error: invalid data")]
26    BadData,
27    /// The decompressed size exceeds the caller-supplied maximum.
28    #[error("Decompressed size {size} exceeds maximum {max}")]
29    TooLarge { size: usize, max: usize },
30    /// The output buffer is too small for the decompressed data.
31    #[error("Insufficient buffer size, output too large")]
32    InsufficientSpace,
33}