pub struct Error { /* private fields */ }
Expand description
Error type of random number generators
In order to be compatible with std
and no_std
, this type has two
possible implementations: with std
a boxed Error
trait object is stored,
while with no_std
we merely store an error code.
Implementations
sourceimpl Error
impl Error
sourcepub const CUSTOM_START: u32 = 3_221_225_472u32
pub const CUSTOM_START: u32 = 3_221_225_472u32
Codes at or above this point can be used by users to define their own custom errors.
This has a fixed value of (1 << 31) + (1 << 30) = 0xC000_0000
,
therefore the number of values available for custom codes is 1 << 30
.
This is identical to getrandom::Error::CUSTOM_START
.
sourcepub const INTERNAL_START: u32 = 2_147_483_648u32
pub const INTERNAL_START: u32 = 2_147_483_648u32
Codes below this point represent OS Errors (i.e. positive i32 values).
Codes at or above this point, but below Error::CUSTOM_START
are
reserved for use by the rand
and getrandom
crates.
This is identical to getrandom::Error::INTERNAL_START
.
sourcepub fn new<E>(err: E) -> Errorwhere
E: Into<Box<dyn Error + Sync + Send + 'static, Global>>,
pub fn new<E>(err: E) -> Errorwhere
E: Into<Box<dyn Error + Sync + Send + 'static, Global>>,
Construct from any type supporting std::error::Error
Available only when configured with std
.
See also From<NonZeroU32>
, which is available with and without std
.
sourcepub fn inner(&self) -> &(dyn Error + Sync + Send + 'static)
pub fn inner(&self) -> &(dyn Error + Sync + Send + 'static)
Reference the inner error (std
only)
When configured with std
, this is a trivial operation and never
panics. Without std
, this method is simply unavailable.
sourcepub fn take_inner(self) -> Box<dyn Error + Sync + Send + 'static, Global>
pub fn take_inner(self) -> Box<dyn Error + Sync + Send + 'static, Global>
Unwrap the inner error (std
only)
When configured with std
, this is a trivial operation and never
panics. Without std
, this method is simply unavailable.
sourcepub fn raw_os_error(&self) -> Option<i32>
pub fn raw_os_error(&self) -> Option<i32>
Extract the raw OS error code (if this error came from the OS)
This method is identical to std::io::Error::raw_os_error()
, except
that it works in no_std
contexts. If this method returns None
, the
error value can still be formatted via the Display
implementation.
sourcepub fn code(&self) -> Option<NonZeroU32>
pub fn code(&self) -> Option<NonZeroU32>
Retrieve the error code, if any.
If this Error
was constructed via From<NonZeroU32>
, then this method
will return this NonZeroU32
code (for no_std
this is always the
case). Otherwise, this method will return None
.