]> git.lizzy.rs Git - rust.git/blob - tests/target/structs.rs
Merge pull request #571 from nrc/semi
[rust.git] / tests / target / structs.rs
1 // rustfmt-wrap_comments: true
2
3 /// A Doc comment
4 #[AnAttribute]
5 pub struct Foo {
6     #[rustfmt_skip]
7     f :   SomeType, // Comment beside a field
8     f: SomeType, // Comment beside a field
9     // Comment on a field
10     #[AnAttribute]
11     g: SomeOtherType,
12     /// A doc comment on a field
13     h: AThirdType,
14     pub i: TypeForPublicField,
15 }
16
17 struct Bar;
18
19 struct NewType(Type, OtherType);
20
21 struct NewInt<T: Copy>(pub i32, SomeType /* inline comment */, T /* sup */);
22
23 struct Qux<'a,
24            N: Clone + 'a,
25            E: Clone + 'a,
26            G: Labeller<'a, N, E> + GraphWalk<'a, N, E>,
27            W: Write + Copy>
28 (
29     AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, // Comment
30     BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB,
31     #[AnAttr]
32     // Comment
33     /// Testdoc
34     G,
35     pub W,
36 );
37
38 struct Tuple(// Comment 1
39              AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
40              // Comment 2
41              BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB);
42
43 // With a where clause and generics.
44 pub struct Foo<'a, Y: Baz>
45     where X: Whatever
46 {
47     f: SomeType, // Comment beside a field
48 }
49
50 struct Baz {
51     a: A, // Comment A
52     b: B, // Comment B
53     c: C, // Comment C
54 }
55
56 struct Baz {
57     a: A, // Comment A
58
59     b: B, // Comment B
60
61     c: C, // Comment C
62 }
63
64 struct Baz {
65     a: A,
66
67     b: B,
68     c: C,
69
70     d: D,
71 }
72
73 struct Baz {
74     // Comment A
75     a: A,
76
77     // Comment B
78     b: B,
79     // Comment C
80     c: C,
81 }
82
83 // Will this be a one-liner?
84 struct Tuple(A /* Comment */, B);
85
86 pub struct State<F: FnMut() -> time::Timespec> {
87     now: F,
88 }
89
90 pub struct State<F: FnMut() -> ()> {
91     now: F,
92 }
93
94 pub struct State<F: FnMut()> {
95     now: F,
96 }
97
98 struct Palette {
99     /// A map of indizes in the palette to a count of pixels in approximately that color
100     foo: i32,
101 }
102
103 // Splitting a single line comment into a block previously had a misalignment
104 // when the field had attributes
105 struct FieldsWithAttributes {
106     // Pre Comment
107     #[rustfmt_skip] pub host:String, /* Post comment BBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB
108                                       * BBBBBBBBBBBBBBBBB BBBBBBBBBBB */
109     // Another pre comment
110     #[attr1]
111     #[attr2]
112     pub id: usize, /* CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCC
113                     * CCCCCCCCCCCCCC CCCCCCCCCCCC */
114 }
115
116 struct Deep {
117     deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeep: node::Handle<IdRef<'id, Node<K, V>>,
118                                                                          Type,
119                                                                          NodeType>,
120 }
121
122 struct Foo<T>(T);
123 struct Foo<T>(T)
124     where T: Copy,
125           T: Eq;
126 struct Foo<T>(TTTTTTTTTTTTTTTTT,
127               UUUUUUUUUUUUUUUUUUUUUUUU,
128               TTTTTTTTTTTTTTTTTTT,
129               UUUUUUUUUUUUUUUUUUU);
130 struct Foo<T>(TTTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTT) where T: PartialEq;
131 struct Foo<T>(TTTTTTTTTTTTTTTTT, UUUUUUUUUUUUUUUUUUUUUUUU, TTTTTTTTTTTTTTTTTTTTT)
132     where T: PartialEq;
133 struct Foo<T>(TTTTTTTTTTTTTTTTT,
134               UUUUUUUUUUUUUUUUUUUUUUUU,
135               TTTTTTTTTTTTTTTTTTT,
136               UUUUUUUUUUUUUUUUUUU)
137     where T: PartialEq;
138 struct Foo<T>(TTTTTTTTTTTTTTTTT, // Foo
139               UUUUUUUUUUUUUUUUUUUUUUUU, // Bar
140               // Baz
141               TTTTTTTTTTTTTTTTTTT,
142               // Qux (FIXME #572 - doc comment)
143               UUUUUUUUUUUUUUUUUUU);