INNER CODE UNIT · Rust
generate_nested_struct
willcrichton/flowistry · crates/bench_utils/src/lib.rs:198
pub fn generate_nested_struct(input: TokenStream) -> TokenStream {
let StructAssign {
field_val,
field_ty,
num_fields,
..
} = parse_struct_assign(input);
let fields = (1 ..= num_fields)
.map(|num| Ident::new(format!("field_{num}").as_str(), Span::call_site()))
.collect::<Vec<_>>();
// Create and instantiate structs for each "level" of the nested struct
let mut levels = vec![];
for level_num in (0 ..= num_fields).rev() {
let level = TreeLevel::new(
level_num,
fields.clone(),