fn create_fields<F>( span: Span, struct_def: &VariantData, mk_exprs: F, ) -> Vec<FieldInfo>where F: Fn(usize, &FieldDef, Span) -> Vec<Box<Expr>>,