| // rustfmt-normalize_comments: true |
| // rustfmt-wrap_comments: true |
| |
| /// 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 |
| } |
| |
| // Destructuring |
| fn foo() { |
| S { x: 5, |
| ..}; |
| Struct {..} = Struct { a: 1, b: 4 }; |
| Struct { a, .. } = Struct { a: 1, b: 2, c: 3}; |
| TupleStruct(a,.., b) = TupleStruct(1, 2); |
| TupleStruct( ..) = TupleStruct(3, 4); |
| TupleStruct(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, .., bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb) = TupleStruct(1, 2); |
| } |
| |
| // #1095 |
| struct S<T: /* comment */> { |
| t: T, |
| } |
| |
| // #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<K: Key> { |
| #[allow(dead_code)] //only used for holding the internal pointer |
| writebatch: RawWritebatch, |
| marker: PhantomData<K>, |
| } |
| |
| struct Bar; |
| |
| struct NewType(Type, OtherType); |
| |
| struct |
| NewInt <T: Copy>(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<F: FnMut() -> time::Timespec> { now: F } |
| |
| pub struct State<F: FnMut() -> ()> { now: F } |
| |
| pub struct State<F: FnMut()> { 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<IdRef<'id, Node<K, V>>, |
| Type, |
| NodeType>, |
| } |
| |
| struct Foo<T>(T); |
| struct Foo<T>(T) where T: Copy, T: Eq; |
| struct Foo<T>(TTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUU); |
| struct Foo<T>(TTTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTT) where T: PartialEq; |
| struct Foo<T>(TTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTTTT) where T: PartialEq; |
| struct Foo<T>(TTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUU) where T: PartialEq; |
| struct Foo<T>(TTTTTTTTTTTTTTTTT, // Foo |
| UUUUUUUUUUUUUUUUUUUUUUUU /* Bar */, |
| // Baz |
| TTTTTTTTTTTTTTTTTTT, |
| // Qux (FIXME #572 - doc comment) |
| UUUUUUUUUUUUUUUUUUU); |
| |
| mod m { |
| struct X<T> where T: Sized { |
| a: T, |
| } |
| } |
| |
| struct Foo<T>(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<IdRef<'id, Node<Key, Value>>, |
| Type, |
| NodeType>, |
| } |
| |
| struct Foo<C=()>(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 }); |
| } |
| |
| // Vertical alignment |
| struct Foo { |
| aaaaa: u32, // a |
| |
| b: u32, // b |
| cc: u32, // cc |
| |
| xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: u32, // 1 |
| yy: u32, // comment2 |
| zzz: u32, // comment3 |
| |
| aaaaaa: u32, // comment4 |
| bb: u32, // comment5 |
| // separate |
| dd: u32, // comment7 |
| c: u32, // comment6 |
| |
| aaaaaaa: u32, /* multi |
| * line |
| * comment |
| */ |
| b: u32, // hi |
| |
| do_not_push_this_comment1: u32, // comment1 |
| xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: u32, // 2 |
| please_do_not_push_this_comment3: u32, // comment3 |
| |
| do_not_push_this_comment1: u32, // comment1 |
| // separate |
| xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: u32, // 2 |
| please_do_not_push_this_comment3: u32, // comment3 |
| |
| do_not_push_this_comment1: u32, // comment1 |
| xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: u32, // 2 |
| // separate |
| please_do_not_push_this_comment3: u32, // comment3 |
| } |
| |
| // structs with long identifier |
| struct Loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong {} |
| struct Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong {} |
| struct Loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong {} |
| struct Loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong { x: i32 } |
| |
| // structs with visibility, do not duplicate visibility (#2110). |
| pub(in self) struct Foo{} |
| pub(super) struct Foo{} |
| pub(crate) struct Foo{} |
| pub(in self) struct Foo(); |
| pub(super) struct Foo(); |
| pub(crate) struct Foo(); |
| |
| // #2125 |
| pub struct ReadinessCheckRegistry(Mutex<HashMap<Arc<String>, Box<Fn() -> ReadinessCheck + Sync + Send>>>); |
| |
| // #2144 unit struct with generics |
| struct MyBox<T:?Sized>; |
| struct MyBoxx<T, S> where T: ?Sized, S: Clone; |
| |
| // #2208 |
| struct Test { |
| /// foo |
| #[serde(default)] |
| pub join: Vec<String>, |
| #[serde(default)] pub tls: bool, |
| } |
| |
| // #2818 |
| struct Paren((i32)) where i32: Trait; |
| struct Parens((i32, i32)) where i32: Trait; |