1//! Reimplements some stuff from concatcp to be const generic instead of macro generated
2
3use crate::pmr::{LenAndArray, PArgument, PVariant};
4
5#[doc(hidden)]
6pub const fn __priv_concatenate<const LEN: usize>(input: &[PArgument]) -> LenAndArray<[u8; LEN]> {
7 let mut out: LenAndArray<[u8; LEN]> = LenAndArray {
8 len: 0,
9 array: [0u8; LEN],
10 };
11
12 crate::__for_range! { outer_i in 0..input.len() =>
13 let current = &input[outer_i];
14
15 match current.elem {
16 PVariant::Str(s) => crate::__write_pvariant!(str, current, s => out),
17 PVariant::Int(int) => crate::__write_pvariant!(int, current, int => out),
18 PVariant::Char(c) => crate::__write_pvariant!(char, current, c => out),
19 }
20 }
21
22 out
23}
24