rust_array_set_range 0.3.0

Crate that allows to set range of values in Rust's fixed size arrays
Documentation
pub trait SetRange<T, const N: usize, const NS: usize>
where
    T: Copy,
{
    fn set_range(&mut self, start_idx: usize, source: [T; NS]) -> &mut Self;
}

impl<T, const N: usize, const NS: usize> SetRange<T, N, NS> for [T; N]
where
    T: Copy,
{
    fn set_range(&mut self, start_idx: usize, source: [T; NS]) -> &mut Self {
        for (i, j) in (start_idx..start_idx + NS).zip(0..NS) {
            self[i] = source[j];
        }

        self
    }
}

#[cfg(test)]
mod tests {
    use super::SetRange;

    #[test]
    fn it_works() {
        let mut arr = [0; 20];
        let arr1 = [1; 10];

        arr.set_range(1, arr1);

        assert_eq!(
            arr,
            [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
        );
    }
}