Crates.io | array-concat |
lib.rs | array-concat |
version | |
source | src |
created_at | 2021-04-15 16:56:21.341352+00 |
updated_at | 2025-03-08 19:29:37.339197+00 |
description | Macros for concatenating const arrays. |
homepage | |
repository | https://github.com/inspier/array-concat |
max_upload_size | |
id | 384895 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Macros for concatenating and splitting arrays.
To add to your Cargo.toml:
array-concat = "0.5.5"
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);
}