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}