// rustfmt-normalize_comments: true // rustfmt-wrap_comments: true // rustfmt-error_on_line_overflow: false /// 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, } 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 indizes 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);