// rustfmt-struct_field_align_threshold: 20 // rustfmt-normalize_comments: true // rustfmt-wrap_comments: true // rustfmt-error_on_line_overflow: false struct Foo { x: u32, yy: u32, // comment zzz: u32, } pub struct Bar { x: u32, yy: u32, zzz: u32, xxxxxxx: u32, } fn main() { let foo = Foo { x: 0, yy: 1, zzz: 2, }; let bar = Bar { x: 0, yy: 1, zzz: 2, xxxxxxx: 3, }; } /// A Doc comment #[AnAttribute] pub struct Foo { #[rustfmt::skip] f : SomeType, // Comment beside a field f: SomeType, // Comment beside a field // Comment on a field #[AnAttribute] g: SomeOtherType, /// A doc comment on a field h: AThirdType, pub i: TypeForPublicField } // #1029 pub struct Foo { #[doc(hidden)] // This will NOT get deleted! bar: String, // hi } // #1029 struct X { // `x` is an important number. #[allow(unused)] // TODO: use x: u32, } // #410 #[allow(missing_docs)] pub struct Writebatch { #[allow(dead_code)] //only used for holding the internal pointer writebatch: RawWritebatch, marker: PhantomData, } struct Bar; struct NewType(Type, OtherType); struct NewInt (pub i32, SomeType /* inline comment */, T /* sup */ ); struct Qux<'a, N: Clone + 'a, E: Clone + 'a, G: Labeller<'a, N, E> + GraphWalk<'a, N, E>, W: Write + Copy> ( AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, // Comment BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB, #[AnAttr] // Comment /// Testdoc G, pub W, ); struct Tuple(/*Comment 1*/ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, /* Comment 2 */ BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB,); // With a where-clause and generics. pub struct Foo<'a, Y: Baz> where X: Whatever { f: SomeType, // Comment beside a field } struct Baz { a: A, // Comment A b: B, // Comment B c: C, // Comment C } struct Baz { a: A, // Comment A b: B, // Comment B c: C, // Comment C } struct Baz { a: A, b: B, c: C, d: D } struct Baz { // Comment A a: A, // Comment B b: B, // Comment C c: C,} // Will this be a one-liner? struct Tuple( A, //Comment B ); pub struct State time::Timespec> { now: F } pub struct State ()> { now: F } pub struct State { now: F } struct Palette { /// A map of indices in the palette to a count of pixels in approximately that color foo: i32} // Splitting a single line comment into a block previously had a misalignment // when the field had attributes struct FieldsWithAttributes { // Pre Comment #[rustfmt::skip] pub host:String, // Post comment BBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBB BBBBBBBBBBB //Another pre comment #[attr1] #[attr2] pub id: usize // CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCC CCCCCCCCCCCC } struct Deep { deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeep: node::Handle>, Type, NodeType>, } struct Foo(T); struct Foo(T) where T: Copy, T: Eq; struct Foo(TTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUU); struct Foo(TTTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTT) where T: PartialEq; struct Foo(TTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTTTT) where T: PartialEq; struct Foo(TTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUU) where T: PartialEq; struct Foo(TTTTTTTTTTTTTTTTT, // Foo UUUUUUUUUUUUUUUUUUUUUUUU /* Bar */, // Baz TTTTTTTTTTTTTTTTTTT, // Qux (FIXME #572 - doc comment) UUUUUUUUUUUUUUUUUUU); mod m { struct X where T: Sized { a: T, } } struct Foo(TTTTTTTTTTTTTTTTTTT, /// Qux UUUUUUUUUUUUUUUUUUU); struct Issue677 { pub ptr: *const libc::c_void, pub trace: fn( obj: *const libc::c_void, tracer : *mut JSTracer ), } struct Foo {} struct Foo { } struct Foo { // comment } struct Foo { // trailing space -> } struct Foo { /* comment */ } struct Foo( /* comment */ ); struct LongStruct { a: A, the_quick_brown_fox_jumps_over_the_lazy_dog:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, } struct Deep { deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeep: node::Handle>, Type, NodeType>, } struct Foo(String); // #1364 fn foo() { convex_shape.set_point(0, &Vector2f { x: 400.0, y: 100.0 }); convex_shape.set_point(1, &Vector2f { x: 500.0, y: 70.0 }); convex_shape.set_point(2, &Vector2f { x: 450.0, y: 100.0 }); convex_shape.set_point(3, &Vector2f { x: 580.0, y: 150.0 }); } fn main() { let x = Bar; // Comment let y = Foo {a: x }; Foo { a: foo() /* comment*/, /* comment*/ b: bar(), ..something }; Fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo { a: f(), b: b(), }; Foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo { a: f(), b: b(), }; Foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo { // Comment a: foo(), // Comment // Comment b: bar(), // Comment }; Foo { a:Bar, b:f() }; Quux { x: if cond { bar(); }, y: baz() }; A { // Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. first: item(), // Praesent et diam eget libero egestas mattis sit amet vitae augue. // Nam tincidunt congue enim, ut porta lorem lacinia consectetur. second: Item }; Some(Data::MethodCallData(MethodCallData { span: sub_span.unwrap(), scope: self.enclosing_scope(id), ref_id: def_id, decl_id: Some(decl_id), })); Diagram { /* o This graph demonstrates how * / \ significant whitespace is * o o preserved. * /|\ \ * o o o o */ graph: G, } } fn matcher() { TagTerminatedByteMatcher { matcher: ByteMatcher { pattern: b" { memb: T } let foo = Foo:: { memb: 10 }; } fn issue201() { let s = S{a:0, .. b}; } fn issue201_2() { let s = S{a: S2{ .. c}, .. b}; } fn issue278() { let s = S { a: 0, // b: 0, }; let s1 = S { a: 0, // foo // // bar b: 0, }; } fn struct_exprs() { Foo { a : 1, b:f( 2)}; Foo{a:1,b:f(2),..g(3)}; LoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooongStruct { ..base }; IntrinsicISizesContribution { content_intrinsic_sizes: IntrinsicISizes { minimum_inline_size: 0, }, }; } fn issue123() { Foo { a: b, c: d, e: f }; Foo { a: bb, c: dd, e: ff }; Foo { a: ddddddddddddddddddddd, b: cccccccccccccccccccccccccccccccccccccc }; } fn issue491() { Foo { guard: None, arm: 0, // Comment }; Foo { arm: 0, // Comment }; Foo { a: aaaaaaaaaa, b: bbbbbbbb, c: cccccccccc, d: dddddddddd, /* a comment */ e: eeeeeeeee }; } fn issue698() { Record { ffffffffffffffffffffffffffields: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, }; Record { ffffffffffffffffffffffffffields: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, } } fn issue835() { MyStruct {}; MyStruct { /* a comment */ }; MyStruct { // Another comment }; MyStruct {} } fn field_init_shorthand() { MyStruct { x, y, z }; MyStruct { x, y, z, .. base }; Foo { aaaaaaaaaa, bbbbbbbb, cccccccccc, dddddddddd, /* a comment */ eeeeeeeee }; Record { ffffffffffffffffffffffffffieldsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa }; }