# Tuple struct field initializer struct S(u8); fn f() { S { 0: 1 }; } ==> SourceFile( StructItem(struct, TypeIdentifier, OrderedFieldDeclarationList(TypeIdentifier)), FunctionItem( fn, BoundIdentifier, ParamList, Block( ExpressionStatement( StructExpression( TypeIdentifier, FieldInitializerList(FieldInitializer(Integer, Integer))))))) # Attributed and reordered tuple struct field initializers struct S(u8, u8); fn f() { S { 1: 2, #[cfg(all())] 0: 1 }; } ==> SourceFile( StructItem( struct, TypeIdentifier, OrderedFieldDeclarationList(TypeIdentifier, TypeIdentifier)), FunctionItem( fn, BoundIdentifier, ParamList, Block( ExpressionStatement( StructExpression( TypeIdentifier, FieldInitializerList( FieldInitializer(Integer, Integer), FieldInitializer( Attribute( MetaItem(Identifier, ParenthesizedTokens(Identifier, ParenthesizedTokens))), Integer, Integer))))))) # Tuple struct field initializer with functional update struct S(u8, u8); fn f(s: S) -> S { S { 1: 2, ..s } } ==> SourceFile( StructItem( struct, TypeIdentifier, OrderedFieldDeclarationList(TypeIdentifier, TypeIdentifier)), FunctionItem( fn, BoundIdentifier, ParamList(Parameter(BoundIdentifier, TypeIdentifier)), TypeIdentifier, Block( ExpressionStatement( StructExpression( TypeIdentifier, FieldInitializerList( FieldInitializer(Integer, Integer), BaseFieldInitializer(Identifier)))))))