Skip to main content

RandomWith

Trait RandomWith 

Source
pub trait RandomWith<D: Clone>: Sized {
    // Required method
    fn random_with(rng: impl CryptoRngCore, data: D) -> Self;

    // Provided methods
    fn random_n_with<Container: FromIterator<Self>>(
        rng: impl CryptoRngCore,
        size: usize,
        data: D,
    ) -> Container { ... }
    fn random_n_with_each<Container: FromIterator<Self>>(
        rng: impl CryptoRngCore,
        all_data: impl IntoExactSizeIterator<Item = D>,
    ) -> Container { ... }
}
Expand description

A trait for getting a random value for a type alongside some data.

Required Methods§

Source

fn random_with(rng: impl CryptoRngCore, data: D) -> Self

Provided Methods§

Source

fn random_n_with<Container: FromIterator<Self>>( rng: impl CryptoRngCore, size: usize, data: D, ) -> Container

Source

fn random_n_with_each<Container: FromIterator<Self>>( rng: impl CryptoRngCore, all_data: impl IntoExactSizeIterator<Item = D>, ) -> Container

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T: Random> RandomWith<usize> for Vec<T>

Source§

fn random_with(source: impl CryptoRngCore, n_elements: usize) -> Self

Implementors§

Source§

impl<A: Clone, B: Random> RandomWith<Arc<A>> for PairwiseAuthKey<A, B>

Source§

impl<F: FieldExtension, M: Positive> RandomWith<(BoxedUint, Vec<Vec<Arc<FieldElement<F>>>>)> for PowPairs<F, M>

Source§

impl<F: FieldExtension, M: Positive> RandomWith<(Vec<Vec<Arc<FieldElement<F>>>>, Vec<Vec<Arc<FieldElement<Gf2Ext<IdGf2_128, 2>>>>>)> for DaBits<F, M>

Source§

impl<F: FieldExtension, M: Positive> RandomWith<Vec<Arc<FieldElement<F>>>> for Singlets<F, M>

Source§

impl<F: FieldExtension, M: Positive> RandomWith<Vec<Arc<FieldElement<F>>>> for Triples<F, M>

Source§

impl<F: FieldExtension, M: Positive> RandomWith<usize> for Singlets<F, M>

Source§

impl<F: FieldExtension, N: Positive> RandomWith<BoxedUint> for PowPairs<F, N>

Source§

impl<F: FieldExtension> RandomWith<(BoxedUint, Vec<Vec<Arc<FieldElement<F>>>>)> for PowPair<F>

Source§

impl<F: FieldExtension> RandomWith<(Vec<Vec<Arc<FieldElement<F>>>>, Vec<Vec<Arc<FieldElement<Gf2Ext<IdGf2_128, 2>>>>>)> for DaBit<F>

Source§

impl<F: FieldExtension> RandomWith<BoxedUint> for PowPair<F>

Source§

impl<F: FieldExtension> RandomWith<Vec<Arc<FieldElement<F>>>> for Triple<F>

Source§

impl<V, A, B> RandomWith<(V, Vec<Arc<A>>)> for PairwiseAuthShare<V, A, B>
where for<'a> V: Clone + Mul<&'a A, Output = B>, A: Random + Clone, B: Random + Clone + ConstantTimeEq + SubAssign + for<'b> Add<&'b B, Output = B>,

Source§

impl<V, A, B> RandomWith<(V, Vec<Vec<Arc<A>>>)> for PairwiseAuthShare<V, A, B>
where for<'a> V: AdditiveShares + Mul<&'a A, Output = B>, A: Random + Clone, B: Random + Clone + ConstantTimeEq + SubAssign + for<'b> Add<&'b B, Output = B>,

Source§

impl<V, A, B> RandomWith<(usize, V)> for PairwiseAuthShare<V, A, B>
where V: Clone, A: Random + Clone, B: Random,

Source§

impl<V, A, B> RandomWith<V> for PairwiseAuthShare<V, A, B>
where for<'a> V: AdditiveShares + Mul<&'a A, Output = B>, A: Random + Clone, B: Random + Clone + ConstantTimeEq + SubAssign + for<'b> Add<&'b B, Output = B>,

Source§

impl<V, A, B> RandomWith<Vec<Arc<A>>> for PairwiseAuthShare<V, A, B>
where for<'a> V: Random + Clone + Mul<&'a A, Output = B>, A: Random + Clone, B: Random + Clone + ConstantTimeEq + SubAssign + for<'b> Add<&'b B, Output = B>,

Source§

impl<V, A, B> RandomWith<usize> for PairwiseAuthShare<V, A, B>
where V: Random, A: Random + Clone, B: Random,