Skip to content

Commit 417f012

Browse files
committed
ZSTD_format_e: make struct
1 parent edd9ee0 commit 417f012

File tree

3 files changed

+30
-5
lines changed

3 files changed

+30
-5
lines changed

lib/compress/zstd_compress.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2414,7 +2414,7 @@ pub unsafe extern "C" fn ZSTD_CCtxParams_setParameter(
24142414
) -> size_t {
24152415
match param.0 {
24162416
10 => {
2417-
let Ok(format) = Format::try_from(value as ZSTD_format_e) else {
2417+
let Ok(format) = Format::try_from(value) else {
24182418
return Error::parameter_outOfBound.to_error_code();
24192419
};
24202420

lib/decompress/zstd_decompress.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -906,7 +906,7 @@ pub unsafe extern "C" fn ZSTD_getFrameHeader(
906906
src: *const core::ffi::c_void,
907907
srcSize: size_t,
908908
) -> size_t {
909-
ZSTD_getFrameHeader_advanced(zfhPtr, src, srcSize, Format::ZSTD_f_zstd1 as _)
909+
ZSTD_getFrameHeader_advanced(zfhPtr, src, srcSize, ZSTD_format_e::ZSTD_f_zstd1)
910910
}
911911

912912
fn get_frame_header(zfhPtr: &mut ZSTD_FrameHeader, src: &[u8]) -> size_t {
@@ -2549,7 +2549,7 @@ pub unsafe extern "C" fn ZSTD_DCtx_setFormat(
25492549
ZSTD_DCtx_setParameter(
25502550
dctx,
25512551
ZSTD_dParameter::ZSTD_d_format as ZSTD_dParameter,
2552-
format as core::ffi::c_int,
2552+
u32::from(format) as core::ffi::c_int,
25532553
)
25542554
}
25552555
#[cfg_attr(feature = "export-symbols", export_name = crate::prefix!(ZSTD_dParam_getBounds))]
@@ -2655,7 +2655,7 @@ pub unsafe extern "C" fn ZSTD_DCtx_setParameter(
26552655
return 0;
26562656
}
26572657
ZSTD_dParameter::ZSTD_d_experimentalParam1 => {
2658-
let Ok(format) = Format::try_from(value as ZSTD_format_e) else {
2658+
let Ok(format) = Format::try_from(value) else {
26592659
return Error::parameter_outOfBound.to_error_code();
26602660
};
26612661

lib/zstd.rs

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,20 @@ pub type ZSTD_freeFunction =
115115
pub type ZSTD_allocFunction =
116116
Option<unsafe extern "C" fn(*mut core::ffi::c_void, size_t) -> *mut core::ffi::c_void>;
117117

118-
pub type ZSTD_format_e = core::ffi::c_uint;
118+
#[derive(PartialEq)]
119+
#[repr(transparent)]
120+
pub struct ZSTD_format_e(u32);
121+
122+
impl ZSTD_format_e {
123+
pub const ZSTD_f_zstd1: Self = Self(Format::ZSTD_f_zstd1 as u32);
124+
pub const ZSTD_f_zstd1_magicless: Self = Self(Format::ZSTD_f_zstd1_magicless as u32);
125+
}
126+
127+
impl From<ZSTD_format_e> for u32 {
128+
fn from(value: ZSTD_format_e) -> Self {
129+
value.0
130+
}
131+
}
119132

120133
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
121134
#[repr(u32)]
@@ -137,6 +150,18 @@ impl TryFrom<ZSTD_format_e> for Format {
137150
type Error = ();
138151

139152
fn try_from(value: ZSTD_format_e) -> Result<Self, Self::Error> {
153+
match value {
154+
ZSTD_format_e::ZSTD_f_zstd1 => Ok(Self::ZSTD_f_zstd1),
155+
ZSTD_format_e::ZSTD_f_zstd1_magicless => Ok(Self::ZSTD_f_zstd1_magicless),
156+
_ => Err(()),
157+
}
158+
}
159+
}
160+
161+
impl TryFrom<i32> for Format {
162+
type Error = ();
163+
164+
fn try_from(value: i32) -> Result<Self, Self::Error> {
140165
match value {
141166
0 => Ok(Self::ZSTD_f_zstd1),
142167
1 => Ok(Self::ZSTD_f_zstd1_magicless),

0 commit comments

Comments
 (0)