#[derive(Debug, Clone, Copy)]
pub struct UnitInitError;
pub struct UnitError(pub(crate) i32);
pub type UnitResult<T> = Result<T, UnitError>;
pub(crate) trait IntoUnitResult {
fn into_unit_result(self) -> UnitResult<()>;
}
impl IntoUnitResult for i32 {
fn into_unit_result(self) -> UnitResult<()> {
if self == 0 {
Ok(())
} else {
Err(UnitError(self))
}
}
}