return quote! { // The size is not known at compile time, so generate a loop to fill the vector (using the appropriate fill for the inner type)
for i in 0..#field_ident.len() { // The length of vectors must not change, so we can use the length of the field to determine how many children to take
vec![#field_ident.clone()] // If it is an identifier, clone it. We still need to wrap it in a vec to use .flatten() on the final list.
#field_ident.iter().flat_map(|sf| #sf_clone).collect::<Vec<_>>() // If it is a vector, generate the clone for the inner type and flatten the list