servo/ports
bors-servo 93c41fba69 Auto merge of #10484 - emilio:reupdate-stylo-bindings, r=bholley
geckolib: reupdate bindings to allow easy union modifications

This commit updates the current bindings with a m-c trunk build.

This improves quite a few things:
 * It adds `Debug` support for structs, which should be easy.
 * It generates unnamed structs definitions.
 * And... It allows changing union types directly!

The way mutating a union works is as follows. Each union field has an
unsized field of type `__BindgenUnionField<T>`, where `T` is the type of
the field.

The field has two unsafe methods, `as_ref` and `as_mut`, that would work
as follows (assuming 64 bit pointers):

````rust
let u = nsStyleUnion {
    mInt: Default::default(),
    mFloat: Default::default(),
    mPointer: Default::default(),
    _bindgen_data_: 0,
};

unsafe {
    assert_eq!(*u.mInt.as_ref() == 0);
    *u.mPointer.as_mut() = !0 as *mut _;
    assert_eq!(*u.mInt.as_ref() == !0);
    *u.mInt.as_mut() = 0;
    assert_eq!(*u.mInt.as_ref() == 0);
    assert_eq!(*u.mPointer.as_ref() == (!0 << 32) as *mut _);
}
```

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10484)
<!-- Reviewable:end -->
2016-04-09 02:06:09 +05:30
..
cef Use mime! macro in fetch methods 2016-04-08 11:26:48 -04:00
geckolib Auto merge of #10484 - emilio:reupdate-stylo-bindings, r=bholley 2016-04-09 02:06:09 +05:30
glutin Update glutin. 2016-04-06 23:28:17 -04:00
gonk Use mime! macro in fetch methods 2016-04-08 11:26:48 -04:00