rand06-compat

Crates.iorand06-compat
lib.rsrand06-compat
version0.1.0
created_at2025-03-17 20:11:31.616514+00
updated_at2025-03-17 20:11:31.616514+00
descriptionCompatibility wrapper between `rand_core` 0.6 and 0.9
homepage
repositoryhttps://github.com/tlsnotary/tlsn-utils
max_upload_size
id1595876
size24,548
sinu.eth (sinui0)

documentation

README

rand06-compat

This crate provides a compatibility wrapper between versions 0.6 and 0.9 of rand_core.

Warning about no_std ⚠️

Supporting fallible RNGs is tricky to do in a clean manner. This compat wrapper hardcodes an error code of 1 in the case that the RNG fails.

PRs welcome for a better solution.

Example

use rand_core_06::RngCore as RngCore06;
use rand_core::OsRng;
use rand06_compat::Rand0_6CompatExt;

// This function requires an RNG implementing the `0.6` trait.
fn foo<R>(rng: &mut R) where R: RngCore06 {
    let num: u32 = rng.next_u32();
    println!("random number: {}", num);
}

// Pass in the RNG from `0.9` using compat trait.
foo(&mut OsRng.compat())
Commit count: 88

cargo fmt