#array #concat #split

no-std array-concat

Macros for concatenating const arrays

12 releases

new 0.5.5 Mar 8, 2025
0.5.3 Jun 1, 2024
0.5.2 Jan 27, 2023
0.5.1 Jun 3, 2021

#150 in Data structures

Download history 3727/week @ 2024-11-18 2294/week @ 2024-11-25 3350/week @ 2024-12-02 2274/week @ 2024-12-09 2617/week @ 2024-12-16 1199/week @ 2024-12-23 1473/week @ 2024-12-30 2962/week @ 2025-01-06 3866/week @ 2025-01-13 3017/week @ 2025-01-20 3110/week @ 2025-01-27 5151/week @ 2025-02-03 4117/week @ 2025-02-10 2537/week @ 2025-02-17 4179/week @ 2025-02-24 3310/week @ 2025-03-03

14,619 downloads per month
Used in 18 crates (10 directly)

MIT license

12KB
202 lines

Current Crates.io Version docs-rs

array-concat

Macros for concatenating and splitting arrays.

To add to your Cargo.toml:

array-concat = "0.5.5"

Example

use array_concat::*;

const A: [u32; 3] = [1, 2, 3];
const B: [u32; 2] = [4, 5];
const C: [u32; concat_arrays_size!(A, B)] = concat_arrays!(A, B);

// Non-Copy struct
#[derive(Debug, PartialEq)]
struct S(bool);
const D: [S; 1] = [S(true)];
const E: [S; 1] = [S(false)];
const F: [S; concat_arrays_size!(D, E)] = concat_arrays!(D, E);

fn main() {
    let c = concat_arrays!(A, B);
    assert_eq!([1, 2, 3, 4, 5], C);
    assert_eq!([1, 2, 3, 4, 5], c);
    assert_eq!([S(true), S(false)], F);

    // Split the array into three parts with lengths: 1, 3, and 1
    assert_eq!(([1], [2, 3, 4], [5]), split_array!(c, 1, 3, 1));

    let a = [1, 2, 3];
    let b = [4, 5];
    let c = concat_arrays!(a, b); // Size is inferred by the assert below
    assert_eq!([1, 2, 3, 4, 5], c);
}

No runtime deps

Features