]> git.lizzy.rs Git - rust.git/blob - tests/target/structs.rs
Merge pull request #1746 from topecongiro/struct-tuple
[rust.git] / tests / target / structs.rs
1 // rustfmt-normalize_comments: true
2 // rustfmt-wrap_comments: true
3
4 /// A Doc comment
5 #[AnAttribute]
6 pub struct Foo {
7     #[rustfmt_skip]
8     f :   SomeType, // Comment beside a field
9     f: SomeType, // Comment beside a field
10     // Comment on a field
11     #[AnAttribute]
12     g: SomeOtherType,
13     /// A doc comment on a field
14     h: AThirdType,
15     pub i: TypeForPublicField,
16 }
17
18 // #1029
19 pub struct Foo {
20     #[doc(hidden)]
21     // This will NOT get deleted!
22     bar: String, // hi
23 }
24
25 // #1029
26 struct X {
27     // `x` is an important number.
28     #[allow(unused)] // TODO: use
29     x: u32,
30 }
31
32 // #410
33 #[allow(missing_docs)]
34 pub struct Writebatch<K: Key> {
35     #[allow(dead_code)] // only used for holding the internal pointer
36     writebatch: RawWritebatch,
37     marker: PhantomData<K>,
38 }
39
40 struct Bar;
41
42 struct NewType(Type, OtherType);
43
44 struct NewInt<T: Copy>(
45     pub i32,
46     SomeType, // inline comment
47     T, // sup
48 );
49
50 struct Qux<
51     'a,
52     N: Clone + 'a,
53     E: Clone + 'a,
54     G: Labeller<'a, N, E> + GraphWalk<'a, N, E>,
55     W: Write + Copy,
56 >(
57     AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, // Comment
58     BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB,
59     #[AnAttr]
60     // Comment
61     /// Testdoc
62     G,
63     pub W,
64 );
65
66 struct Tuple(
67     // Comment 1
68     AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
69     // Comment 2
70     BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB,
71 );
72
73 // With a where clause and generics.
74 pub struct Foo<'a, Y: Baz>
75 where
76     X: Whatever,
77 {
78     f: SomeType, // Comment beside a field
79 }
80
81 struct Baz {
82     a: A, // Comment A
83     b: B, // Comment B
84     c: C, // Comment C
85 }
86
87 struct Baz {
88     a: A, // Comment A
89
90     b: B, // Comment B
91
92     c: C, // Comment C
93 }
94
95 struct Baz {
96     a: A,
97
98     b: B,
99     c: C,
100
101     d: D,
102 }
103
104 struct Baz {
105     // Comment A
106     a: A,
107
108     // Comment B
109     b: B,
110     // Comment C
111     c: C,
112 }
113
114 // Will this be a one-liner?
115 struct Tuple(
116     A, // Comment
117     B,
118 );
119
120 pub struct State<F: FnMut() -> time::Timespec> {
121     now: F,
122 }
123
124 pub struct State<F: FnMut() -> ()> {
125     now: F,
126 }
127
128 pub struct State<F: FnMut()> {
129     now: F,
130 }
131
132 struct Palette {
133     /// A map of indizes in the palette to a count of pixels in approximately
134     /// that color
135     foo: i32,
136 }
137
138 // Splitting a single line comment into a block previously had a misalignment
139 // when the field had attributes
140 struct FieldsWithAttributes {
141     // Pre Comment
142     #[rustfmt_skip] pub host:String, /* Post comment BBBBBBBBBBBBBB BBBBBBBBBBBBBBBB
143                                       * BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBB BBBBBBBBBBB */
144     // Another pre comment
145     #[attr1]
146     #[attr2]
147     pub id: usize, /* CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCCCC
148                     * CCCCCCCCCCCCCCCCCC CCCCCCCCCCCCCC CCCCCCCCCCCC */
149 }
150
151 struct Deep {
152     deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeep:
153         node::Handle<IdRef<'id, Node<K, V>>, Type, NodeType>,
154 }
155
156 struct Foo<T>(T);
157 struct Foo<T>(T)
158 where
159     T: Copy,
160     T: Eq;
161 struct Foo<T>(
162     TTTTTTTTTTTTTTTTT,
163     UUUUUUUUUUUUUUUUUUUUUUUU,
164     TTTTTTTTTTTTTTTTTTT,
165     UUUUUUUUUUUUUUUUUUU,
166 );
167 struct Foo<T>(
168     TTTTTTTTTTTTTTTTTT,
169     UUUUUUUUUUUUUUUUUUUUUUUU,
170     TTTTTTTTTTTTTTTTTTT,
171 )
172 where
173     T: PartialEq;
174 struct Foo<T>(
175     TTTTTTTTTTTTTTTTT,
176     UUUUUUUUUUUUUUUUUUUUUUUU,
177     TTTTTTTTTTTTTTTTTTTTT,
178 )
179 where
180     T: PartialEq;
181 struct Foo<T>(
182     TTTTTTTTTTTTTTTTT,
183     UUUUUUUUUUUUUUUUUUUUUUUU,
184     TTTTTTTTTTTTTTTTTTT,
185     UUUUUUUUUUUUUUUUUUU,
186 )
187 where
188     T: PartialEq;
189 struct Foo<T>(
190     TTTTTTTTTTTTTTTTT, // Foo
191     UUUUUUUUUUUUUUUUUUUUUUUU, // Bar
192     // Baz
193     TTTTTTTTTTTTTTTTTTT,
194     // Qux (FIXME #572 - doc comment)
195     UUUUUUUUUUUUUUUUUUU,
196 );
197
198 mod m {
199     struct X<T>
200     where
201         T: Sized,
202     {
203         a: T,
204     }
205 }
206
207 struct Foo<T>(
208     TTTTTTTTTTTTTTTTTTT,
209     /// Qux
210     UUUUUUUUUUUUUUUUUUU,
211 );
212
213 struct Issue677 {
214     pub ptr: *const libc::c_void,
215     pub trace: fn(obj: *const libc::c_void, tracer: *mut JSTracer),
216 }
217
218 struct Foo {}
219 struct Foo {}
220 struct Foo {
221     // comment
222 }
223 struct Foo {
224     // trailing space ->
225 }
226 struct Foo { /* comment */ }
227 struct Foo( /* comment */ );
228
229 struct LongStruct {
230     a: A,
231     the_quick_brown_fox_jumps_over_the_lazy_dog:
232         AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
233 }
234
235 struct Deep {
236     deeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeep:
237         node::Handle<IdRef<'id, Node<Key, Value>>, Type, NodeType>,
238 }
239
240 struct Foo<C = ()>(String);
241
242 // #1364
243 fn foo() {
244     convex_shape.set_point(0, &Vector2f { x: 400.0, y: 100.0 });
245     convex_shape.set_point(1, &Vector2f { x: 500.0, y: 70.0 });
246     convex_shape.set_point(2, &Vector2f { x: 450.0, y: 100.0 });
247     convex_shape.set_point(3, &Vector2f { x: 580.0, y: 150.0 });
248 }