const_format/
const_generic_concatcp.rs

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 {
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}