1 #![allow(
2 dead_code,
3 non_snake_case,
4 non_camel_case_types,
5 non_upper_case_globals
6 )]
7
8 #[repr(C)]
9 #[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
10 pub struct __BindgenBitfieldUnit<Storage> {
11 storage: Storage,
12 }
13 impl<Storage> __BindgenBitfieldUnit<Storage> {
14 #[inline]
new(storage: Storage) -> Self15 pub const fn new(storage: Storage) -> Self {
16 Self { storage }
17 }
18 }
19 impl<Storage> __BindgenBitfieldUnit<Storage>
20 where
21 Storage: AsRef<[u8]> + AsMut<[u8]>,
22 {
23 #[inline]
get_bit(&self, index: usize) -> bool24 pub fn get_bit(&self, index: usize) -> bool {
25 debug_assert!(index / 8 < self.storage.as_ref().len());
26 let byte_index = index / 8;
27 let byte = self.storage.as_ref()[byte_index];
28 let bit_index = if cfg!(target_endian = "big") {
29 7 - (index % 8)
30 } else {
31 index % 8
32 };
33 let mask = 1 << bit_index;
34 byte & mask == mask
35 }
36 #[inline]
set_bit(&mut self, index: usize, val: bool)37 pub fn set_bit(&mut self, index: usize, val: bool) {
38 debug_assert!(index / 8 < self.storage.as_ref().len());
39 let byte_index = index / 8;
40 let byte = &mut self.storage.as_mut()[byte_index];
41 let bit_index = if cfg!(target_endian = "big") {
42 7 - (index % 8)
43 } else {
44 index % 8
45 };
46 let mask = 1 << bit_index;
47 if val {
48 *byte |= mask;
49 } else {
50 *byte &= !mask;
51 }
52 }
53 #[inline]
get(&self, bit_offset: usize, bit_width: u8) -> u6454 pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
55 debug_assert!(bit_width <= 64);
56 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
57 debug_assert!(
58 (bit_offset + (bit_width as usize)) / 8 <=
59 self.storage.as_ref().len()
60 );
61 let mut val = 0;
62 for i in 0..(bit_width as usize) {
63 if self.get_bit(i + bit_offset) {
64 let index = if cfg!(target_endian = "big") {
65 bit_width as usize - 1 - i
66 } else {
67 i
68 };
69 val |= 1 << index;
70 }
71 }
72 val
73 }
74 #[inline]
set(&mut self, bit_offset: usize, bit_width: u8, val: u64)75 pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
76 debug_assert!(bit_width <= 64);
77 debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
78 debug_assert!(
79 (bit_offset + (bit_width as usize)) / 8 <=
80 self.storage.as_ref().len()
81 );
82 for i in 0..(bit_width as usize) {
83 let mask = 1 << i;
84 let val_bit_is_set = val & mask == mask;
85 let index = if cfg!(target_endian = "big") {
86 bit_width as usize - 1 - i
87 } else {
88 i
89 };
90 self.set_bit(index + bit_offset, val_bit_is_set);
91 }
92 }
93 }
94 #[repr(u32)]
95 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
96 pub enum nsStyleSVGOpacitySource {
97 eStyleSVGOpacitySource_Normal = 0,
98 eStyleSVGOpacitySource_ContextFillOpacity = 1,
99 eStyleSVGOpacitySource_ContextStrokeOpacity = 2,
100 }
101 #[repr(C)]
102 #[derive(Debug, Copy, Clone)]
103 pub struct Weird {
104 pub mStrokeDasharrayLength: ::std::os::raw::c_uint,
105 pub _bitfield_align_1: [u16; 0],
106 pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
107 pub mClipRule: ::std::os::raw::c_uchar,
108 pub mColorInterpolation: ::std::os::raw::c_uchar,
109 pub mColorInterpolationFilters: ::std::os::raw::c_uchar,
110 pub mFillRule: ::std::os::raw::c_uchar,
111 pub mImageRendering: ::std::os::raw::c_uchar,
112 pub mPaintOrder: ::std::os::raw::c_uchar,
113 pub mShapeRendering: ::std::os::raw::c_uchar,
114 pub mStrokeLinecap: ::std::os::raw::c_uchar,
115 pub mStrokeLinejoin: ::std::os::raw::c_uchar,
116 pub mTextAnchor: ::std::os::raw::c_uchar,
117 pub mTextRendering: ::std::os::raw::c_uchar,
118 pub _bitfield_align_2: [u8; 0],
119 pub _bitfield_2: __BindgenBitfieldUnit<[u8; 2usize]>,
120 pub __bindgen_padding_0: [u8; 3usize],
121 }
122 #[test]
bindgen_test_layout_Weird()123 fn bindgen_test_layout_Weird() {
124 const UNINIT: ::std::mem::MaybeUninit<Weird> =
125 ::std::mem::MaybeUninit::uninit();
126 let ptr = UNINIT.as_ptr();
127 assert_eq!(
128 ::std::mem::size_of::<Weird>(),
129 24usize,
130 concat!("Size of: ", stringify!(Weird))
131 );
132 assert_eq!(
133 ::std::mem::align_of::<Weird>(),
134 4usize,
135 concat!("Alignment of ", stringify!(Weird))
136 );
137 assert_eq!(
138 unsafe {
139 ::std::ptr::addr_of!((*ptr).mStrokeDasharrayLength) as usize -
140 ptr as usize
141 },
142 0usize,
143 concat!(
144 "Offset of field: ",
145 stringify!(Weird),
146 "::",
147 stringify!(mStrokeDasharrayLength)
148 )
149 );
150 assert_eq!(
151 unsafe {
152 ::std::ptr::addr_of!((*ptr).mClipRule) as usize - ptr as usize
153 },
154 8usize,
155 concat!(
156 "Offset of field: ",
157 stringify!(Weird),
158 "::",
159 stringify!(mClipRule)
160 )
161 );
162 assert_eq!(
163 unsafe {
164 ::std::ptr::addr_of!((*ptr).mColorInterpolation) as usize -
165 ptr as usize
166 },
167 9usize,
168 concat!(
169 "Offset of field: ",
170 stringify!(Weird),
171 "::",
172 stringify!(mColorInterpolation)
173 )
174 );
175 assert_eq!(
176 unsafe {
177 ::std::ptr::addr_of!((*ptr).mColorInterpolationFilters) as usize -
178 ptr as usize
179 },
180 10usize,
181 concat!(
182 "Offset of field: ",
183 stringify!(Weird),
184 "::",
185 stringify!(mColorInterpolationFilters)
186 )
187 );
188 assert_eq!(
189 unsafe {
190 ::std::ptr::addr_of!((*ptr).mFillRule) as usize - ptr as usize
191 },
192 11usize,
193 concat!(
194 "Offset of field: ",
195 stringify!(Weird),
196 "::",
197 stringify!(mFillRule)
198 )
199 );
200 assert_eq!(
201 unsafe {
202 ::std::ptr::addr_of!((*ptr).mImageRendering) as usize - ptr as usize
203 },
204 12usize,
205 concat!(
206 "Offset of field: ",
207 stringify!(Weird),
208 "::",
209 stringify!(mImageRendering)
210 )
211 );
212 assert_eq!(
213 unsafe {
214 ::std::ptr::addr_of!((*ptr).mPaintOrder) as usize - ptr as usize
215 },
216 13usize,
217 concat!(
218 "Offset of field: ",
219 stringify!(Weird),
220 "::",
221 stringify!(mPaintOrder)
222 )
223 );
224 assert_eq!(
225 unsafe {
226 ::std::ptr::addr_of!((*ptr).mShapeRendering) as usize - ptr as usize
227 },
228 14usize,
229 concat!(
230 "Offset of field: ",
231 stringify!(Weird),
232 "::",
233 stringify!(mShapeRendering)
234 )
235 );
236 assert_eq!(
237 unsafe {
238 ::std::ptr::addr_of!((*ptr).mStrokeLinecap) as usize - ptr as usize
239 },
240 15usize,
241 concat!(
242 "Offset of field: ",
243 stringify!(Weird),
244 "::",
245 stringify!(mStrokeLinecap)
246 )
247 );
248 assert_eq!(
249 unsafe {
250 ::std::ptr::addr_of!((*ptr).mStrokeLinejoin) as usize - ptr as usize
251 },
252 16usize,
253 concat!(
254 "Offset of field: ",
255 stringify!(Weird),
256 "::",
257 stringify!(mStrokeLinejoin)
258 )
259 );
260 assert_eq!(
261 unsafe {
262 ::std::ptr::addr_of!((*ptr).mTextAnchor) as usize - ptr as usize
263 },
264 17usize,
265 concat!(
266 "Offset of field: ",
267 stringify!(Weird),
268 "::",
269 stringify!(mTextAnchor)
270 )
271 );
272 assert_eq!(
273 unsafe {
274 ::std::ptr::addr_of!((*ptr).mTextRendering) as usize - ptr as usize
275 },
276 18usize,
277 concat!(
278 "Offset of field: ",
279 stringify!(Weird),
280 "::",
281 stringify!(mTextRendering)
282 )
283 );
284 }
285 impl Default for Weird {
default() -> Self286 fn default() -> Self {
287 let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
288 unsafe {
289 ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
290 s.assume_init()
291 }
292 }
293 }
294 impl Weird {
295 #[inline]
bitTest(&self) -> ::std::os::raw::c_uint296 pub fn bitTest(&self) -> ::std::os::raw::c_uint {
297 unsafe {
298 ::std::mem::transmute(self._bitfield_1.get(0usize, 16u8) as u32)
299 }
300 }
301 #[inline]
set_bitTest(&mut self, val: ::std::os::raw::c_uint)302 pub fn set_bitTest(&mut self, val: ::std::os::raw::c_uint) {
303 unsafe {
304 let val: u32 = ::std::mem::transmute(val);
305 self._bitfield_1.set(0usize, 16u8, val as u64)
306 }
307 }
308 #[inline]
bitTest2(&self) -> ::std::os::raw::c_uint309 pub fn bitTest2(&self) -> ::std::os::raw::c_uint {
310 unsafe {
311 ::std::mem::transmute(self._bitfield_1.get(16usize, 15u8) as u32)
312 }
313 }
314 #[inline]
set_bitTest2(&mut self, val: ::std::os::raw::c_uint)315 pub fn set_bitTest2(&mut self, val: ::std::os::raw::c_uint) {
316 unsafe {
317 let val: u32 = ::std::mem::transmute(val);
318 self._bitfield_1.set(16usize, 15u8, val as u64)
319 }
320 }
321 #[inline]
new_bitfield_1( bitTest: ::std::os::raw::c_uint, bitTest2: ::std::os::raw::c_uint, ) -> __BindgenBitfieldUnit<[u8; 4usize]>322 pub fn new_bitfield_1(
323 bitTest: ::std::os::raw::c_uint,
324 bitTest2: ::std::os::raw::c_uint,
325 ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
326 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> =
327 Default::default();
328 __bindgen_bitfield_unit.set(0usize, 16u8, {
329 let bitTest: u32 = unsafe { ::std::mem::transmute(bitTest) };
330 bitTest as u64
331 });
332 __bindgen_bitfield_unit.set(16usize, 15u8, {
333 let bitTest2: u32 = unsafe { ::std::mem::transmute(bitTest2) };
334 bitTest2 as u64
335 });
336 __bindgen_bitfield_unit
337 }
338 #[inline]
mFillOpacitySource(&self) -> nsStyleSVGOpacitySource339 pub fn mFillOpacitySource(&self) -> nsStyleSVGOpacitySource {
340 unsafe {
341 ::std::mem::transmute(self._bitfield_2.get(0usize, 3u8) as u32)
342 }
343 }
344 #[inline]
set_mFillOpacitySource(&mut self, val: nsStyleSVGOpacitySource)345 pub fn set_mFillOpacitySource(&mut self, val: nsStyleSVGOpacitySource) {
346 unsafe {
347 let val: u32 = ::std::mem::transmute(val);
348 self._bitfield_2.set(0usize, 3u8, val as u64)
349 }
350 }
351 #[inline]
mStrokeOpacitySource(&self) -> nsStyleSVGOpacitySource352 pub fn mStrokeOpacitySource(&self) -> nsStyleSVGOpacitySource {
353 unsafe {
354 ::std::mem::transmute(self._bitfield_2.get(3usize, 3u8) as u32)
355 }
356 }
357 #[inline]
set_mStrokeOpacitySource(&mut self, val: nsStyleSVGOpacitySource)358 pub fn set_mStrokeOpacitySource(&mut self, val: nsStyleSVGOpacitySource) {
359 unsafe {
360 let val: u32 = ::std::mem::transmute(val);
361 self._bitfield_2.set(3usize, 3u8, val as u64)
362 }
363 }
364 #[inline]
mStrokeDasharrayFromObject(&self) -> bool365 pub fn mStrokeDasharrayFromObject(&self) -> bool {
366 unsafe {
367 ::std::mem::transmute(self._bitfield_2.get(6usize, 1u8) as u8)
368 }
369 }
370 #[inline]
set_mStrokeDasharrayFromObject(&mut self, val: bool)371 pub fn set_mStrokeDasharrayFromObject(&mut self, val: bool) {
372 unsafe {
373 let val: u8 = ::std::mem::transmute(val);
374 self._bitfield_2.set(6usize, 1u8, val as u64)
375 }
376 }
377 #[inline]
mStrokeDashoffsetFromObject(&self) -> bool378 pub fn mStrokeDashoffsetFromObject(&self) -> bool {
379 unsafe {
380 ::std::mem::transmute(self._bitfield_2.get(7usize, 1u8) as u8)
381 }
382 }
383 #[inline]
set_mStrokeDashoffsetFromObject(&mut self, val: bool)384 pub fn set_mStrokeDashoffsetFromObject(&mut self, val: bool) {
385 unsafe {
386 let val: u8 = ::std::mem::transmute(val);
387 self._bitfield_2.set(7usize, 1u8, val as u64)
388 }
389 }
390 #[inline]
mStrokeWidthFromObject(&self) -> bool391 pub fn mStrokeWidthFromObject(&self) -> bool {
392 unsafe {
393 ::std::mem::transmute(self._bitfield_2.get(8usize, 1u8) as u8)
394 }
395 }
396 #[inline]
set_mStrokeWidthFromObject(&mut self, val: bool)397 pub fn set_mStrokeWidthFromObject(&mut self, val: bool) {
398 unsafe {
399 let val: u8 = ::std::mem::transmute(val);
400 self._bitfield_2.set(8usize, 1u8, val as u64)
401 }
402 }
403 #[inline]
new_bitfield_2( mFillOpacitySource: nsStyleSVGOpacitySource, mStrokeOpacitySource: nsStyleSVGOpacitySource, mStrokeDasharrayFromObject: bool, mStrokeDashoffsetFromObject: bool, mStrokeWidthFromObject: bool, ) -> __BindgenBitfieldUnit<[u8; 2usize]>404 pub fn new_bitfield_2(
405 mFillOpacitySource: nsStyleSVGOpacitySource,
406 mStrokeOpacitySource: nsStyleSVGOpacitySource,
407 mStrokeDasharrayFromObject: bool,
408 mStrokeDashoffsetFromObject: bool,
409 mStrokeWidthFromObject: bool,
410 ) -> __BindgenBitfieldUnit<[u8; 2usize]> {
411 let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 2usize]> =
412 Default::default();
413 __bindgen_bitfield_unit.set(0usize, 3u8, {
414 let mFillOpacitySource: u32 =
415 unsafe { ::std::mem::transmute(mFillOpacitySource) };
416 mFillOpacitySource as u64
417 });
418 __bindgen_bitfield_unit.set(3usize, 3u8, {
419 let mStrokeOpacitySource: u32 =
420 unsafe { ::std::mem::transmute(mStrokeOpacitySource) };
421 mStrokeOpacitySource as u64
422 });
423 __bindgen_bitfield_unit.set(6usize, 1u8, {
424 let mStrokeDasharrayFromObject: u8 =
425 unsafe { ::std::mem::transmute(mStrokeDasharrayFromObject) };
426 mStrokeDasharrayFromObject as u64
427 });
428 __bindgen_bitfield_unit.set(7usize, 1u8, {
429 let mStrokeDashoffsetFromObject: u8 =
430 unsafe { ::std::mem::transmute(mStrokeDashoffsetFromObject) };
431 mStrokeDashoffsetFromObject as u64
432 });
433 __bindgen_bitfield_unit.set(8usize, 1u8, {
434 let mStrokeWidthFromObject: u8 =
435 unsafe { ::std::mem::transmute(mStrokeWidthFromObject) };
436 mStrokeWidthFromObject as u64
437 });
438 __bindgen_bitfield_unit
439 }
440 }
441