use crate::wad::ffi::quake;
use core::num::NonZero;
#[repr(transparent)]
#[derive(
Clone,
Copy,
Debug,
Eq,
PartialEq,
)]
pub struct Compression(NonZero<i8>);
impl Compression {
pub const LZSS: Self = Self::from_i8(quake::CMP_LZSS).unwrap();
#[inline(always)]
#[must_use]
pub const fn from_i8(value: i8) -> Option<Self> {
match NonZero::new(value) {
Some(value) => Some(Self(value)),
_ => None,
}
}
#[inline(always)]
#[must_use]
pub const fn to_i8(self) -> i8 {
self.0.get()
}
}
impl From<Compression> for i8 {
#[inline(always)]
fn from(value: Compression) -> Self {
value.to_i8()
}
}