getrandom

Struct Error

Source
pub struct Error(/* private fields */);
Expand description

A small and no_std compatible error type

The Error::raw_os_error() will indicate if the error is from the OS, and if so, which error code the OS gave the application. If such an error is encountered, please consult with your system documentation.

Internally this type is a NonZeroU32, with certain values reserved for certain purposes, see Error::INTERNAL_START and Error::CUSTOM_START.

If this crate’s "std" Cargo feature is enabled, then:

Implementations§

Source§

impl Error

Source

pub const UNSUPPORTED: Error

This target/platform is not supported by getrandom.

Source

pub const ERRNO_NOT_POSITIVE: Error

The platform-specific errno returned a non-positive value.

Source

pub const UNEXPECTED: Error

Encountered an unexpected situation which should not happen in practice.

Source

pub const IOS_SEC_RANDOM: Error

Call to CCRandomGenerateBytes failed on iOS, tvOS, or waatchOS.

Source

pub const WINDOWS_RTL_GEN_RANDOM: Error

Call to Windows RtlGenRandom failed.

Source

pub const FAILED_RDRAND: Error

RDRAND instruction failed due to a hardware issue.

Source

pub const NO_RDRAND: Error

RDRAND instruction unsupported on this target.

Source

pub const WEB_CRYPTO: Error

The environment does not support the Web Crypto API.

Source

pub const WEB_GET_RANDOM_VALUES: Error

Calling Web Crypto API crypto.getRandomValues failed.

Source

pub const VXWORKS_RAND_SECURE: Error

On VxWorks, call to randSecure failed (random number generator is not yet initialized).

Source

pub const NODE_CRYPTO: Error

Node.js does not have the crypto CommonJS module.

Source

pub const NODE_RANDOM_FILL_SYNC: Error

Calling Node.js function crypto.randomFillSync failed.

Source

pub const NODE_ES_MODULE: Error

Called from an ES module on Node.js. This is unsupported, see: https://docs.rs/getrandom#nodejs-es-module-support.

Source

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.

Source

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.

Source

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.

Source

pub const fn code(self) -> NonZeroU32

Extract the bare error code.

This code can either come from the underlying OS, or be a custom error. Use Error::raw_os_error() to disambiguate.

Trait Implementations§

Source§

impl Clone for Error

Source§

fn clone(&self) -> Error

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Error

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<NonZero<u32>> for Error

Source§

fn from(code: NonZeroU32) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Error

Source§

fn eq(&self, other: &Error) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Error

Source§

impl Eq for Error

Source§

impl StructuralPartialEq for Error

Auto Trait Implementations§

§

impl Freeze for Error

§

impl RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnwindSafe for Error

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.