1 // Copyright 2019 The Fuchsia Authors
2 //
3 // Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
4 // <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
5 // license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
6 // This file may not be copied, modified, or distributed except according to
7 // those terms.
8
9 #[macro_use]
10 extern crate zerocopy;
11
main()12 fn main() {}
13
14 //
15 // Generic errors
16 //
17
18 #[derive(FromZeroes, FromBytes)]
19 #[repr("foo")]
20 enum Generic1 {
21 A,
22 }
23
24 #[derive(FromZeroes, FromBytes)]
25 #[repr(foo)]
26 enum Generic2 {
27 A,
28 }
29
30 #[derive(FromZeroes, FromBytes)]
31 #[repr(transparent)]
32 enum Generic3 {
33 A,
34 }
35
36 #[derive(FromZeroes, FromBytes)]
37 #[repr(u8, u16)]
38 enum Generic4 {
39 A,
40 }
41
42 #[derive(FromZeroes, FromBytes)]
43 enum Generic5 {
44 A,
45 }
46
47 //
48 // FromZeroes errors
49 //
50
51 #[derive(FromZeroes)]
52 enum FromZeroes1 {
53 A(u8),
54 }
55
56 #[derive(FromZeroes)]
57 enum FromZeroes2 {
58 A,
59 B(u8),
60 }
61
62 #[derive(FromZeroes)]
63 enum FromZeroes3 {
64 A = 1,
65 B,
66 }
67
68 //
69 // FromBytes errors
70 //
71
72 #[derive(FromZeroes, FromBytes)]
73 #[repr(C)]
74 enum FromBytes1 {
75 A,
76 }
77
78 #[derive(FromZeroes, FromBytes)]
79 #[repr(usize)]
80 enum FromBytes2 {
81 A,
82 }
83
84 #[derive(FromZeroes, FromBytes)]
85 #[repr(isize)]
86 enum FromBytes3 {
87 A,
88 }
89
90 #[derive(FromZeroes, FromBytes)]
91 #[repr(u32)]
92 enum FromBytes4 {
93 A,
94 }
95
96 #[derive(FromZeroes, FromBytes)]
97 #[repr(i32)]
98 enum FromBytes5 {
99 A,
100 }
101
102 #[derive(FromZeroes, FromBytes)]
103 #[repr(u64)]
104 enum FromBytes6 {
105 A,
106 }
107
108 #[derive(FromZeroes, FromBytes)]
109 #[repr(i64)]
110 enum FromBytes7 {
111 A,
112 }
113
114 //
115 // Unaligned errors
116 //
117
118 #[derive(Unaligned)]
119 #[repr(C)]
120 enum Unaligned1 {
121 A,
122 }
123
124 #[derive(Unaligned)]
125 #[repr(u16)]
126 enum Unaligned2 {
127 A,
128 }
129
130 #[derive(Unaligned)]
131 #[repr(i16)]
132 enum Unaligned3 {
133 A,
134 }
135
136 #[derive(Unaligned)]
137 #[repr(u32)]
138 enum Unaligned4 {
139 A,
140 }
141
142 #[derive(Unaligned)]
143 #[repr(i32)]
144 enum Unaligned5 {
145 A,
146 }
147
148 #[derive(Unaligned)]
149 #[repr(u64)]
150 enum Unaligned6 {
151 A,
152 }
153
154 #[derive(Unaligned)]
155 #[repr(i64)]
156 enum Unaligned7 {
157 A,
158 }
159
160 #[derive(Unaligned)]
161 #[repr(usize)]
162 enum Unaligned8 {
163 A,
164 }
165
166 #[derive(Unaligned)]
167 #[repr(isize)]
168 enum Unaligned9 {
169 A,
170 }
171
172 #[derive(Unaligned)]
173 #[repr(u8, align(2))]
174 enum Unaligned10 {
175 A,
176 }
177
178 #[derive(Unaligned)]
179 #[repr(i8, align(2))]
180 enum Unaligned11 {
181 A,
182 }
183
184 #[derive(Unaligned)]
185 #[repr(align(1), align(2))]
186 enum Unaligned12 {
187 A,
188 }
189
190 #[derive(Unaligned)]
191 #[repr(align(2), align(4))]
192 enum Unaligned13 {
193 A,
194 }
195