use super::error::{self, Error};
#[repr(C)]
#[derive(Copy, Clone, Debug, PartialEq)]
pub struct Result<T> {
pub value: T,
pub error: Error,
}
#[inline]
pub(crate) fn success<T>(value: T)
-> Result<T>
{
Result { value: value, error: error::success() }
}
#[inline]
pub(crate) fn overflow_error<T>(value: T)
-> Result<T>
{
Result { value: value, error: error::overflow_error() }
}
#[inline]
pub(crate) fn invalid_digit_error<T>(value: T, index: usize)
-> Result<T>
{
Result { value: value, error: error::invalid_digit_error(index) }
}
#[inline]
pub(crate) fn empty_error<T>(value: T)
-> Result<T>
{
Result { value: value, error: error::empty_error() }
}
pub type U8Result = Result<u8>;
pub type U16Result = Result<u16>;
pub type U32Result = Result<u32>;
pub type U64Result = Result<u64>;
#[cfg(has_i128)]
pub type U128Result = Result<u128>;
pub type UsizeResult = Result<usize>;
pub type I8Result = Result<i8>;
pub type I16Result = Result<i16>;
pub type I32Result = Result<i32>;
pub type I64Result = Result<i64>;
#[cfg(has_i128)]
pub type I128Result = Result<i128>;
pub type IsizeResult = Result<isize>;
pub type F32Result = Result<f32>;
pub type F64Result = Result<f64>;