use crate::NSTDUInt8;
use nstdapi::nstdapi;
pub const NSTD_RESULT_ERR: NSTDUInt8 = 0;
pub const NSTD_RESULT_OK: NSTDUInt8 = 1;
#[nstdapi]
#[repr(u8)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
pub enum NSTDResult<T, E> {
Err(E),
Ok(T),
}
impl<T, E> NSTDResult<T, E> {
#[inline]
pub fn unwrap(self) -> T {
match self {
Self::Ok(value) => value,
Self::Err(_) => panic!("called `NSTDResult::unwrap()` on an `Err` value"),
}
}
#[inline]
pub fn expect(self, msg: &str) -> T {
match self {
Self::Ok(value) => value,
Self::Err(_) => panic!("{msg}"),
}
}
}