Skip to main content

chunk_by_max_concurrent

Function chunk_by_max_concurrent 

Source
pub fn chunk_by_max_concurrent<T: Clone>(
    items: &[T],
    max_concurrent: usize,
) -> Vec<Vec<T>>
Expand description

Re-exported for parallel publish wave planning. Split a list of items into contiguous chunks bounded by max_concurrent.

  • max_concurrent <= 0 is treated as 1.
  • Empty input returns an empty list of chunks.
  • Item order is preserved across chunks.

§Examples

use shipper::plan::chunking::chunk_by_max_concurrent;

let items = vec!["a", "b", "c", "d", "e"];
let chunks = chunk_by_max_concurrent(&items, 2);
assert_eq!(chunks, vec![vec!["a", "b"], vec!["c", "d"], vec!["e"]]);

// Empty input returns no chunks
let empty: Vec<i32> = vec![];
assert!(chunk_by_max_concurrent(&empty, 3).is_empty());