Skip to main content

ThreadEntropyRegistry

Struct ThreadEntropyRegistry 

Source
pub struct ThreadEntropyRegistry { /* private fields */ }
Expand description

Thread-local entropy source registry

This structure manages custom entropy sources for the current thread. It uses atomic operations to ensure thread safety.

Implementations§

Source§

impl ThreadEntropyRegistry

Source

pub const fn new() -> Self

Create a new thread entropy registry

Source

pub unsafe fn register(&self, source: *const CustomEntropySource)

Register a custom entropy source for this thread

§Arguments
  • source - The custom entropy source to register
§Safety

The source must remain valid for the lifetime of the registry. The caller is responsible for ensuring the source is not dropped while registered.

Source

pub fn unregister(&self)

Unregister the current entropy source

Source

pub unsafe fn get_source(&self) -> Option<&CustomEntropySource>

Get the currently registered entropy source

§Returns

Returns a reference to the registered entropy source, or None if no source is registered.

§Safety

The returned reference is only valid as long as the source remains registered and not dropped.

Source

pub fn generate_entropy(&self, dest: &mut [u8]) -> Result<()>

Generate entropy using the registered source

§Arguments
  • dest - Buffer to fill with random bytes
§Errors

Returns an error if no source is registered or if entropy generation fails.

Trait Implementations§

Source§

impl Default for ThreadEntropyRegistry

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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> 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> Same for T

Source§

type Output = T

Should always be Self
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.