zksync_bellman 0.32.11

zk-SNARK library, based on bellman
Documentation
use crate::pairing::ff::PrimeField;
use crate::worker::*;

pub(crate) fn convert_to_field_elements<F: PrimeField>(indexes: &[usize], worker: &Worker) -> Vec<F> {
    let mut result = vec![F::zero(); indexes.len()];

    worker.scope(indexes.len(), |scope, chunk| {
        for (idx, fe) in indexes.chunks(chunk).zip(result.chunks_mut(chunk)) {
            scope.spawn(move |_| {
                let mut repr = F::zero().into_repr();
                for (idx, fe) in idx.iter().zip(fe.iter_mut()) {
                    repr.as_mut()[0] = *idx as u64;
                    *fe = F::from_repr(repr).expect("is a valid representation");
                }
            });
        }
    });

    result
}