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) -> Self where
E: Into<Box<dyn Error + Send + Sync + 'static>>,
Available on crate feature std
only.
pub fn new<E>(err: E) -> Self where
E: Into<Box<dyn Error + Send + Sync + 'static>>,
std
only.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 + Send + Sync + 'static)
Available on crate feature std
only.
pub fn inner(&self) -> &(dyn Error + Send + Sync + 'static)
std
only.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 + Send + Sync + 'static>
Available on crate feature std
only.
pub fn take_inner(self) -> Box<dyn Error + Send + Sync + 'static>
std
only.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
.
Trait Implementations
sourceimpl Error for Error
impl Error for Error
sourcefn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
1.0.0 · sourcefn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
sourceimpl From<NonZeroU32> for Error
impl From<NonZeroU32> for Error
sourcefn from(code: NonZeroU32) -> Self
fn from(code: NonZeroU32) -> Self
Converts to this type from the input type.
Auto Trait Implementations
impl !RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl !UnwindSafe for Error
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more