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