| // 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(self) struct Foo {} |
| pub(super) struct Foo {} |
| pub(crate) struct Foo {} |
| pub(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; |