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 -->
This commit is contained in:
bors-servo 2016-04-09 02:06:09 +05:30
commit 93c41fba69

File diff suppressed because it is too large Load diff