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", so this trait is not object safe.

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> 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<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<usize> for Singlets<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, N: Positive> RandomWith<BoxedUint> for PowPairs<F, N>

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, 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> for PairwiseAuthShare<V, A, B>
where V: Random, A: Random + Clone, B: Random,

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<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>,