Skip to content

Commit d5e538c

Browse files
lilithinflation
authored andcommitted
feat: add #[non_exhaustive] to error enums
Marks DecodeError and EncodeError as #[non_exhaustive] to allow adding new error variants in future versions without breaking downstream code. This is a semver best practice for public error enums, as it forces downstream users to include a wildcard arm in match expressions. Closes #179
1 parent b6fdbad commit d5e538c

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

jpegxl-rs/src/errors.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use jpegxl_sys::{decode::JxlDecoderStatus, encoder::encode::JxlEncoderError};
2323

2424
/// Errors derived from [`JxlDecoderStatus`]
2525
#[derive(Error, Debug)]
26+
#[non_exhaustive]
2627
pub enum DecodeError {
2728
/// Cannot create a decoder
2829
#[error("Cannot create a decoder")]
@@ -50,6 +51,7 @@ pub enum DecodeError {
5051
/// Errors derived from [`JxlEncoderStatus`][jpegxl_sys::encoder::encode::JxlEncoderStatus]
5152
/// and [`JxlEncoderError`]
5253
#[derive(Error, Debug)]
54+
#[non_exhaustive]
5355
pub enum EncodeError {
5456
/// Cannot create an encoder
5557
#[error("Cannot create an encoder")]

0 commit comments

Comments
 (0)