summa_core/utils/
mod.rs

1pub mod random;
2pub mod sync;
3
4pub fn current_time() -> u64 {
5    (instant::now() / 1000.0) as u64
6}
7
8pub fn transpose<T>(v: Vec<Vec<T>>) -> Vec<Vec<T>> {
9    assert!(!v.is_empty());
10    let len = v[0].len();
11    let mut iters: Vec<_> = v.into_iter().map(|n| n.into_iter()).collect();
12    (0..len).map(|_| iters.iter_mut().filter_map(|n| n.next()).collect::<Vec<T>>()).collect()
13}