mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
stylo: Replace real ComputedValues with bindgenned ComputedValues2
This commit is contained in:
parent
d52f04d105
commit
5d78743037
5 changed files with 1041 additions and 161 deletions
|
@ -771,11 +771,30 @@ impl<T: 'static> RawOffsetArc<T> {
|
|||
// Forward the result.
|
||||
result
|
||||
}
|
||||
|
||||
/// If uniquely owned, provide a mutable reference
|
||||
/// Else create a copy, and mutate that
|
||||
pub fn make_mut(&mut self) -> &mut T where T: Clone {
|
||||
unsafe {
|
||||
// extract the RawOffsetArc as an owned variable
|
||||
let this = ptr::read(self);
|
||||
// treat it as a real Arc
|
||||
let mut arc = Arc::from_raw_offset(this);
|
||||
// obtain the mutable reference. Cast away the lifetime
|
||||
// This may mutate `arc`
|
||||
let ret = Arc::make_mut(&mut arc) as *mut _;
|
||||
// Store the possibly-mutated arc back inside, after converting
|
||||
// it to a RawOffsetArc again
|
||||
ptr::write(self, Arc::into_raw_offset(arc));
|
||||
&mut *ret
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: 'static> Arc<T> {
|
||||
/// Converts an Arc into a RawOffsetArc. This consumes the Arc, so the refcount
|
||||
/// is not modified.
|
||||
#[inline]
|
||||
pub fn into_raw_offset(a: Self) -> RawOffsetArc<T> {
|
||||
RawOffsetArc {
|
||||
ptr: NonZeroPtrMut::new(Arc::into_raw(a) as *mut T),
|
||||
|
@ -784,6 +803,7 @@ impl<T: 'static> Arc<T> {
|
|||
|
||||
/// Converts a RawOffsetArc into an Arc. This consumes the RawOffsetArc, so the refcount
|
||||
/// is not modified.
|
||||
#[inline]
|
||||
pub fn from_raw_offset(a: RawOffsetArc<T>) -> Self {
|
||||
let ptr = a.ptr.ptr();
|
||||
mem::forget(a);
|
||||
|
|
|
@ -12,7 +12,9 @@ pub type ServoNodeData = AtomicRefCell<ElementData>;
|
|||
pub type ServoWritingMode = ::logical_geometry::WritingMode;
|
||||
pub type ServoFontComputationData = ::properties::FontComputationData;
|
||||
pub type ServoCustomPropertiesMap = Option<::stylearc::Arc<::custom_properties::CustomPropertiesMap>>;
|
||||
pub type ServoRuleNode = Option<::rule_tree::StrongRuleNode>;
|
||||
pub type ServoVisitedStyle = Option<::stylearc::Arc<ServoComputedValues2>>;
|
||||
pub type ServoComputedValueFlags = ::properties::computed_value_flags::ComputedValueFlags;
|
||||
pub type ServoRawOffsetArc<T> = ::stylearc::RawOffsetArc<T>;
|
||||
|
||||
#[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
|
||||
|
@ -7603,6 +7605,429 @@ pub mod root {
|
|||
FirstLetterContinuation = 1,
|
||||
PlaceholderFrame = 2,
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoFont {
|
||||
pub gecko: root::nsStyleFont,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoFont() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoFont>() , 120usize , concat
|
||||
! ( "Size of: " , stringify ! ( GeckoFont ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoFont>() , 8usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoFont ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoFont ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoFont ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoColor {
|
||||
pub gecko: root::nsStyleColor,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoColor() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoColor>() , 4usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoColor ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoColor>() , 4usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoColor ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoColor ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoColor ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoList {
|
||||
pub gecko: root::nsStyleList,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoList() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoList>() , 48usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoList ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoList>() , 8usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoList ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoList ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoList ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoText {
|
||||
pub gecko: root::nsStyleText,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoText() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoText>() , 160usize , concat
|
||||
! ( "Size of: " , stringify ! ( GeckoText ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoText>() , 8usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoText ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoText ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoText ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoVisibility {
|
||||
pub gecko: root::nsStyleVisibility,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoVisibility() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoVisibility>() , 7usize ,
|
||||
concat ! (
|
||||
"Size of: " , stringify ! ( GeckoVisibility ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoVisibility>() , 1usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoVisibility ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoVisibility ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoVisibility
|
||||
) , "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoUserInterface {
|
||||
pub gecko: root::nsStyleUserInterface,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoUserInterface() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoUserInterface>() , 24usize ,
|
||||
concat ! (
|
||||
"Size of: " , stringify ! ( GeckoUserInterface ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoUserInterface>() , 8usize
|
||||
, concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoUserInterface )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoUserInterface ) ) . gecko as
|
||||
* const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
GeckoUserInterface ) , "::" , stringify ! ( gecko )
|
||||
));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoTableBorder {
|
||||
pub gecko: root::nsStyleTableBorder,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoTableBorder() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoTableBorder>() , 12usize ,
|
||||
concat ! (
|
||||
"Size of: " , stringify ! ( GeckoTableBorder ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoTableBorder>() , 4usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoTableBorder ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoTableBorder ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
GeckoTableBorder ) , "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoSVG {
|
||||
pub gecko: root::nsStyleSVG,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoSVG() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoSVG>() , 128usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoSVG ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoSVG>() , 8usize , concat !
|
||||
( "Alignment of " , stringify ! ( GeckoSVG ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoSVG ) ) . gecko as * const _
|
||||
as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoSVG ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoBackground {
|
||||
pub gecko: root::nsStyleBackground,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoBackground() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoBackground>() , 160usize ,
|
||||
concat ! (
|
||||
"Size of: " , stringify ! ( GeckoBackground ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoBackground>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoBackground ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoBackground ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoBackground
|
||||
) , "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoPosition {
|
||||
pub gecko: root::nsStylePosition,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoPosition() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoPosition>() , 520usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoPosition )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoPosition>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoPosition ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoPosition ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoPosition )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoTextReset {
|
||||
pub gecko: root::nsStyleTextReset,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoTextReset() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoTextReset>() , 80usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoTextReset )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoTextReset>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoTextReset ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoTextReset ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoTextReset
|
||||
) , "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoDisplay {
|
||||
pub gecko: root::nsStyleDisplay,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoDisplay() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoDisplay>() , 416usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoDisplay )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoDisplay>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoDisplay ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoDisplay ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoDisplay )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoContent {
|
||||
pub gecko: root::nsStyleContent,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoContent() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoContent>() , 24usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoContent )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoContent>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoContent ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoContent ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoContent )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoUIReset {
|
||||
pub gecko: root::nsStyleUIReset,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoUIReset() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoUIReset>() , 56usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoUIReset )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoUIReset>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoUIReset ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoUIReset ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoUIReset )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoTable {
|
||||
pub gecko: root::nsStyleTable,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoTable() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoTable>() , 8usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoTable ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoTable>() , 4usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoTable ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoTable ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoTable ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoMargin {
|
||||
pub gecko: root::nsStyleMargin,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoMargin() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoMargin>() , 40usize , concat
|
||||
! ( "Size of: " , stringify ! ( GeckoMargin ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoMargin>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoMargin ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoMargin ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoMargin ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoPadding {
|
||||
pub gecko: root::nsStylePadding,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoPadding() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoPadding>() , 40usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoPadding )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoPadding>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoPadding ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoPadding ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoPadding )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoBorder {
|
||||
pub gecko: root::nsStyleBorder,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoBorder() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoBorder>() , 312usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoBorder )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoBorder>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoBorder ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoBorder ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoBorder ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoOutline {
|
||||
pub gecko: root::nsStyleOutline,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoOutline() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoOutline>() , 104usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoOutline )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoOutline>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoOutline ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoOutline ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoOutline )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoXUL {
|
||||
pub gecko: root::nsStyleXUL,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoXUL() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoXUL>() , 16usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoXUL ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoXUL>() , 4usize , concat !
|
||||
( "Alignment of " , stringify ! ( GeckoXUL ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoXUL ) ) . gecko as * const _
|
||||
as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoXUL ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoSVGReset {
|
||||
pub gecko: root::nsStyleSVGReset,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoSVGReset() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoSVGReset>() , 192usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoSVGReset )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoSVGReset>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoSVGReset ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoSVGReset ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoSVGReset )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoColumn {
|
||||
pub gecko: root::nsStyleColumn,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoColumn() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoColumn>() , 64usize , concat
|
||||
! ( "Size of: " , stringify ! ( GeckoColumn ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoColumn>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoColumn ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoColumn ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoColumn ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoEffects {
|
||||
pub gecko: root::nsStyleEffects,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoEffects() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoEffects>() , 40usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoEffects )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoEffects>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoEffects ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoEffects ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoEffects )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
/**
|
||||
* We want C++ to be abe to read the style struct fields of ComputedValues
|
||||
* so we define this type on the C++ side and use the bindgenned version
|
||||
|
@ -7616,39 +8041,46 @@ pub mod root {
|
|||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct ServoComputedValues2 {
|
||||
pub Font: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleFont>,
|
||||
pub Color: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleColor>,
|
||||
pub List: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleList>,
|
||||
pub Text: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleText>,
|
||||
pub Visibility: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleVisibility>,
|
||||
pub UserInterface: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleUserInterface>,
|
||||
pub TableBorder: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleTableBorder>,
|
||||
pub SVG: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleSVG>,
|
||||
pub Variables: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleVariables>,
|
||||
pub Background: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleBackground>,
|
||||
pub Position: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStylePosition>,
|
||||
pub TextReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleTextReset>,
|
||||
pub Display: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleDisplay>,
|
||||
pub Content: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleContent>,
|
||||
pub UIReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleUIReset>,
|
||||
pub Table: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleTable>,
|
||||
pub Margin: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleMargin>,
|
||||
pub Padding: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStylePadding>,
|
||||
pub Border: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleBorder>,
|
||||
pub Outline: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleOutline>,
|
||||
pub XUL: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleXUL>,
|
||||
pub SVGReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleSVGReset>,
|
||||
pub Column: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleColumn>,
|
||||
pub Effects: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleEffects>,
|
||||
pub Font: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoFont>,
|
||||
pub Color: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColor>,
|
||||
pub List: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoList>,
|
||||
pub Text: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoText>,
|
||||
pub Visibility: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoVisibility>,
|
||||
pub UserInterface: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUserInterface>,
|
||||
pub TableBorder: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTableBorder>,
|
||||
pub SVG: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVG>,
|
||||
pub Background: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBackground>,
|
||||
pub Position: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPosition>,
|
||||
pub TextReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTextReset>,
|
||||
pub Display: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoDisplay>,
|
||||
pub Content: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoContent>,
|
||||
pub UIReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUIReset>,
|
||||
pub Table: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTable>,
|
||||
pub Margin: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoMargin>,
|
||||
pub Padding: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPadding>,
|
||||
pub Border: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBorder>,
|
||||
pub Outline: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoOutline>,
|
||||
pub XUL: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoXUL>,
|
||||
pub SVGReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVGReset>,
|
||||
pub Column: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColumn>,
|
||||
pub Effects: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoEffects>,
|
||||
pub custom_properties: ::gecko_bindings::structs::ServoCustomPropertiesMap,
|
||||
pub writing_mode: ::gecko_bindings::structs::ServoWritingMode,
|
||||
pub font_computation_data: ::gecko_bindings::structs::ServoFontComputationData,
|
||||
/// The rule node representing the ordered list of rules matched for this
|
||||
/// node. Can be None for default values and text nodes. This is
|
||||
/// essentially an optimization to avoid referencing the root rule node.
|
||||
pub rules: ::gecko_bindings::structs::ServoRuleNode,
|
||||
/// The element's computed values if visited, only computed if there's a
|
||||
/// relevant link for this element. A element's "relevant link" is the
|
||||
/// element being matched if it is a link or the nearest ancestor link.
|
||||
pub visited_style: ::gecko_bindings::structs::ServoVisitedStyle,
|
||||
pub flags: ::gecko_bindings::structs::ServoComputedValueFlags,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_ServoComputedValues2() {
|
||||
assert_eq!(::std::mem::size_of::<ServoComputedValues2>() ,
|
||||
224usize , concat ! (
|
||||
232usize , concat ! (
|
||||
"Size of: " , stringify ! ( ServoComputedValues2 ) ));
|
||||
assert_eq! (::std::mem::align_of::<ServoComputedValues2>() ,
|
||||
8usize , concat ! (
|
||||
|
@ -7707,120 +8139,112 @@ pub mod root {
|
|||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Variables as * const _ as usize } , 64usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
Variables ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Background as * const _ as usize } , 72usize , concat
|
||||
Background as * const _ as usize } , 64usize , concat
|
||||
! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
Background ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Position as * const _ as usize } , 80usize , concat !
|
||||
Position as * const _ as usize } , 72usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Position
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
TextReset as * const _ as usize } , 88usize , concat !
|
||||
TextReset as * const _ as usize } , 80usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
TextReset ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Display as * const _ as usize } , 96usize , concat ! (
|
||||
Display as * const _ as usize } , 88usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Display
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Content as * const _ as usize } , 104usize , concat !
|
||||
(
|
||||
Content as * const _ as usize } , 96usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Content
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
UIReset as * const _ as usize } , 112usize , concat !
|
||||
UIReset as * const _ as usize } , 104usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( UIReset
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . Table
|
||||
as * const _ as usize } , 120usize , concat ! (
|
||||
as * const _ as usize } , 112usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Table )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . Margin
|
||||
as * const _ as usize } , 128usize , concat ! (
|
||||
as * const _ as usize } , 120usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Margin )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Padding as * const _ as usize } , 136usize , concat !
|
||||
Padding as * const _ as usize } , 128usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Padding
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . Border
|
||||
as * const _ as usize } , 144usize , concat ! (
|
||||
as * const _ as usize } , 136usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Border )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Outline as * const _ as usize } , 152usize , concat !
|
||||
Outline as * const _ as usize } , 144usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Outline
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . XUL as
|
||||
* const _ as usize } , 160usize , concat ! (
|
||||
* const _ as usize } , 152usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( XUL )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
SVGReset as * const _ as usize } , 168usize , concat !
|
||||
SVGReset as * const _ as usize } , 160usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( SVGReset
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . Column
|
||||
as * const _ as usize } , 176usize , concat ! (
|
||||
as * const _ as usize } , 168usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Column )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Effects as * const _ as usize } , 184usize , concat !
|
||||
Effects as * const _ as usize } , 176usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Effects
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
custom_properties as * const _ as usize } , 192usize ,
|
||||
custom_properties as * const _ as usize } , 184usize ,
|
||||
concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
custom_properties ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
writing_mode as * const _ as usize } , 200usize ,
|
||||
writing_mode as * const _ as usize } , 192usize ,
|
||||
concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
|
@ -7828,10 +8252,16 @@ pub mod root {
|
|||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
font_computation_data as * const _ as usize } ,
|
||||
204usize , concat ! (
|
||||
196usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
font_computation_data ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . rules
|
||||
as * const _ as usize } , 208usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( rules )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
visited_style as * const _ as usize } , 216usize ,
|
||||
|
@ -7839,6 +8269,12 @@ pub mod root {
|
|||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
visited_style ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . flags
|
||||
as * const _ as usize } , 224usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( flags )
|
||||
));
|
||||
}
|
||||
#[repr(u8)]
|
||||
/**
|
||||
|
@ -39049,7 +39485,7 @@ pub mod root {
|
|||
root::nsCharTraits ) ));
|
||||
}
|
||||
#[test]
|
||||
fn __bindgen_test_layout__bindgen_ty_id_189482_instantiation_33() {
|
||||
fn __bindgen_test_layout__bindgen_ty_id_189816_instantiation_33() {
|
||||
assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! (
|
||||
"Size of template specialization: " , stringify ! ( u8 )
|
||||
));
|
||||
|
@ -39058,7 +39494,7 @@ pub mod root {
|
|||
) ));
|
||||
}
|
||||
#[test]
|
||||
fn __bindgen_test_layout__bindgen_ty_id_189518_instantiation_34() {
|
||||
fn __bindgen_test_layout__bindgen_ty_id_189852_instantiation_34() {
|
||||
assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! (
|
||||
"Size of template specialization: " , stringify ! ( u8 )
|
||||
));
|
||||
|
|
|
@ -12,7 +12,9 @@ pub type ServoNodeData = AtomicRefCell<ElementData>;
|
|||
pub type ServoWritingMode = ::logical_geometry::WritingMode;
|
||||
pub type ServoFontComputationData = ::properties::FontComputationData;
|
||||
pub type ServoCustomPropertiesMap = Option<::stylearc::Arc<::custom_properties::CustomPropertiesMap>>;
|
||||
pub type ServoRuleNode = Option<::rule_tree::StrongRuleNode>;
|
||||
pub type ServoVisitedStyle = Option<::stylearc::Arc<ServoComputedValues2>>;
|
||||
pub type ServoComputedValueFlags = ::properties::computed_value_flags::ComputedValueFlags;
|
||||
pub type ServoRawOffsetArc<T> = ::stylearc::RawOffsetArc<T>;
|
||||
|
||||
#[allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
|
||||
|
@ -7455,6 +7457,429 @@ pub mod root {
|
|||
FirstLetterContinuation = 1,
|
||||
PlaceholderFrame = 2,
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoFont {
|
||||
pub gecko: root::nsStyleFont,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoFont() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoFont>() , 120usize , concat
|
||||
! ( "Size of: " , stringify ! ( GeckoFont ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoFont>() , 8usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoFont ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoFont ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoFont ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoColor {
|
||||
pub gecko: root::nsStyleColor,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoColor() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoColor>() , 4usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoColor ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoColor>() , 4usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoColor ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoColor ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoColor ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoList {
|
||||
pub gecko: root::nsStyleList,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoList() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoList>() , 48usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoList ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoList>() , 8usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoList ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoList ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoList ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoText {
|
||||
pub gecko: root::nsStyleText,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoText() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoText>() , 160usize , concat
|
||||
! ( "Size of: " , stringify ! ( GeckoText ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoText>() , 8usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoText ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoText ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoText ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoVisibility {
|
||||
pub gecko: root::nsStyleVisibility,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoVisibility() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoVisibility>() , 7usize ,
|
||||
concat ! (
|
||||
"Size of: " , stringify ! ( GeckoVisibility ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoVisibility>() , 1usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoVisibility ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoVisibility ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoVisibility
|
||||
) , "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoUserInterface {
|
||||
pub gecko: root::nsStyleUserInterface,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoUserInterface() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoUserInterface>() , 24usize ,
|
||||
concat ! (
|
||||
"Size of: " , stringify ! ( GeckoUserInterface ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoUserInterface>() , 8usize
|
||||
, concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoUserInterface )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoUserInterface ) ) . gecko as
|
||||
* const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
GeckoUserInterface ) , "::" , stringify ! ( gecko )
|
||||
));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoTableBorder {
|
||||
pub gecko: root::nsStyleTableBorder,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoTableBorder() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoTableBorder>() , 12usize ,
|
||||
concat ! (
|
||||
"Size of: " , stringify ! ( GeckoTableBorder ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoTableBorder>() , 4usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoTableBorder ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoTableBorder ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
GeckoTableBorder ) , "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoSVG {
|
||||
pub gecko: root::nsStyleSVG,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoSVG() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoSVG>() , 128usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoSVG ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoSVG>() , 8usize , concat !
|
||||
( "Alignment of " , stringify ! ( GeckoSVG ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoSVG ) ) . gecko as * const _
|
||||
as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoSVG ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoBackground {
|
||||
pub gecko: root::nsStyleBackground,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoBackground() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoBackground>() , 160usize ,
|
||||
concat ! (
|
||||
"Size of: " , stringify ! ( GeckoBackground ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoBackground>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoBackground ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoBackground ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoBackground
|
||||
) , "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoPosition {
|
||||
pub gecko: root::nsStylePosition,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoPosition() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoPosition>() , 520usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoPosition )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoPosition>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoPosition ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoPosition ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoPosition )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoTextReset {
|
||||
pub gecko: root::nsStyleTextReset,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoTextReset() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoTextReset>() , 80usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoTextReset )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoTextReset>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoTextReset ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoTextReset ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoTextReset
|
||||
) , "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoDisplay {
|
||||
pub gecko: root::nsStyleDisplay,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoDisplay() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoDisplay>() , 416usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoDisplay )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoDisplay>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoDisplay ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoDisplay ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoDisplay )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoContent {
|
||||
pub gecko: root::nsStyleContent,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoContent() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoContent>() , 24usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoContent )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoContent>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoContent ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoContent ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoContent )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoUIReset {
|
||||
pub gecko: root::nsStyleUIReset,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoUIReset() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoUIReset>() , 56usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoUIReset )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoUIReset>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoUIReset ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoUIReset ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoUIReset )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoTable {
|
||||
pub gecko: root::nsStyleTable,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoTable() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoTable>() , 8usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoTable ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoTable>() , 4usize , concat
|
||||
! ( "Alignment of " , stringify ! ( GeckoTable ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoTable ) ) . gecko as * const
|
||||
_ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoTable ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoMargin {
|
||||
pub gecko: root::nsStyleMargin,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoMargin() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoMargin>() , 40usize , concat
|
||||
! ( "Size of: " , stringify ! ( GeckoMargin ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoMargin>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoMargin ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoMargin ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoMargin ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoPadding {
|
||||
pub gecko: root::nsStylePadding,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoPadding() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoPadding>() , 40usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoPadding )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoPadding>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoPadding ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoPadding ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoPadding )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoBorder {
|
||||
pub gecko: root::nsStyleBorder,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoBorder() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoBorder>() , 312usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoBorder )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoBorder>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoBorder ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoBorder ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoBorder ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoOutline {
|
||||
pub gecko: root::nsStyleOutline,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoOutline() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoOutline>() , 104usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoOutline )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoOutline>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoOutline ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoOutline ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoOutline )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoXUL {
|
||||
pub gecko: root::nsStyleXUL,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoXUL() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoXUL>() , 16usize , concat !
|
||||
( "Size of: " , stringify ! ( GeckoXUL ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoXUL>() , 4usize , concat !
|
||||
( "Alignment of " , stringify ! ( GeckoXUL ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoXUL ) ) . gecko as * const _
|
||||
as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoXUL ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoSVGReset {
|
||||
pub gecko: root::nsStyleSVGReset,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoSVGReset() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoSVGReset>() , 192usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoSVGReset )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoSVGReset>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoSVGReset ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoSVGReset ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoSVGReset )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoColumn {
|
||||
pub gecko: root::nsStyleColumn,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoColumn() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoColumn>() , 64usize , concat
|
||||
! ( "Size of: " , stringify ! ( GeckoColumn ) ));
|
||||
assert_eq! (::std::mem::align_of::<GeckoColumn>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoColumn ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoColumn ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoColumn ) ,
|
||||
"::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct GeckoEffects {
|
||||
pub gecko: root::nsStyleEffects,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_GeckoEffects() {
|
||||
assert_eq!(::std::mem::size_of::<GeckoEffects>() , 40usize ,
|
||||
concat ! ( "Size of: " , stringify ! ( GeckoEffects )
|
||||
));
|
||||
assert_eq! (::std::mem::align_of::<GeckoEffects>() , 8usize ,
|
||||
concat ! (
|
||||
"Alignment of " , stringify ! ( GeckoEffects ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const GeckoEffects ) ) . gecko as *
|
||||
const _ as usize } , 0usize , concat ! (
|
||||
"Alignment of field: " , stringify ! ( GeckoEffects )
|
||||
, "::" , stringify ! ( gecko ) ));
|
||||
}
|
||||
/**
|
||||
* We want C++ to be abe to read the style struct fields of ComputedValues
|
||||
* so we define this type on the C++ side and use the bindgenned version
|
||||
|
@ -7468,39 +7893,46 @@ pub mod root {
|
|||
#[repr(C)]
|
||||
#[derive(Debug)]
|
||||
pub struct ServoComputedValues2 {
|
||||
pub Font: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleFont>,
|
||||
pub Color: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleColor>,
|
||||
pub List: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleList>,
|
||||
pub Text: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleText>,
|
||||
pub Visibility: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleVisibility>,
|
||||
pub UserInterface: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleUserInterface>,
|
||||
pub TableBorder: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleTableBorder>,
|
||||
pub SVG: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleSVG>,
|
||||
pub Variables: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleVariables>,
|
||||
pub Background: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleBackground>,
|
||||
pub Position: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStylePosition>,
|
||||
pub TextReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleTextReset>,
|
||||
pub Display: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleDisplay>,
|
||||
pub Content: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleContent>,
|
||||
pub UIReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleUIReset>,
|
||||
pub Table: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleTable>,
|
||||
pub Margin: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleMargin>,
|
||||
pub Padding: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStylePadding>,
|
||||
pub Border: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleBorder>,
|
||||
pub Outline: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleOutline>,
|
||||
pub XUL: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleXUL>,
|
||||
pub SVGReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleSVGReset>,
|
||||
pub Column: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleColumn>,
|
||||
pub Effects: ::gecko_bindings::structs::ServoRawOffsetArc<root::nsStyleEffects>,
|
||||
pub Font: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoFont>,
|
||||
pub Color: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColor>,
|
||||
pub List: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoList>,
|
||||
pub Text: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoText>,
|
||||
pub Visibility: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoVisibility>,
|
||||
pub UserInterface: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUserInterface>,
|
||||
pub TableBorder: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTableBorder>,
|
||||
pub SVG: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVG>,
|
||||
pub Background: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBackground>,
|
||||
pub Position: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPosition>,
|
||||
pub TextReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTextReset>,
|
||||
pub Display: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoDisplay>,
|
||||
pub Content: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoContent>,
|
||||
pub UIReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoUIReset>,
|
||||
pub Table: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoTable>,
|
||||
pub Margin: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoMargin>,
|
||||
pub Padding: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoPadding>,
|
||||
pub Border: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoBorder>,
|
||||
pub Outline: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoOutline>,
|
||||
pub XUL: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoXUL>,
|
||||
pub SVGReset: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoSVGReset>,
|
||||
pub Column: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoColumn>,
|
||||
pub Effects: ::gecko_bindings::structs::ServoRawOffsetArc<root::mozilla::GeckoEffects>,
|
||||
pub custom_properties: ::gecko_bindings::structs::ServoCustomPropertiesMap,
|
||||
pub writing_mode: ::gecko_bindings::structs::ServoWritingMode,
|
||||
pub font_computation_data: ::gecko_bindings::structs::ServoFontComputationData,
|
||||
/// The rule node representing the ordered list of rules matched for this
|
||||
/// node. Can be None for default values and text nodes. This is
|
||||
/// essentially an optimization to avoid referencing the root rule node.
|
||||
pub rules: ::gecko_bindings::structs::ServoRuleNode,
|
||||
/// The element's computed values if visited, only computed if there's a
|
||||
/// relevant link for this element. A element's "relevant link" is the
|
||||
/// element being matched if it is a link or the nearest ancestor link.
|
||||
pub visited_style: ::gecko_bindings::structs::ServoVisitedStyle,
|
||||
pub flags: ::gecko_bindings::structs::ServoComputedValueFlags,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_ServoComputedValues2() {
|
||||
assert_eq!(::std::mem::size_of::<ServoComputedValues2>() ,
|
||||
224usize , concat ! (
|
||||
232usize , concat ! (
|
||||
"Size of: " , stringify ! ( ServoComputedValues2 ) ));
|
||||
assert_eq! (::std::mem::align_of::<ServoComputedValues2>() ,
|
||||
8usize , concat ! (
|
||||
|
@ -7559,120 +7991,112 @@ pub mod root {
|
|||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Variables as * const _ as usize } , 64usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
Variables ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Background as * const _ as usize } , 72usize , concat
|
||||
Background as * const _ as usize } , 64usize , concat
|
||||
! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
Background ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Position as * const _ as usize } , 80usize , concat !
|
||||
Position as * const _ as usize } , 72usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Position
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
TextReset as * const _ as usize } , 88usize , concat !
|
||||
TextReset as * const _ as usize } , 80usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
TextReset ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Display as * const _ as usize } , 96usize , concat ! (
|
||||
Display as * const _ as usize } , 88usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Display
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Content as * const _ as usize } , 104usize , concat !
|
||||
(
|
||||
Content as * const _ as usize } , 96usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Content
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
UIReset as * const _ as usize } , 112usize , concat !
|
||||
UIReset as * const _ as usize } , 104usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( UIReset
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . Table
|
||||
as * const _ as usize } , 120usize , concat ! (
|
||||
as * const _ as usize } , 112usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Table )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . Margin
|
||||
as * const _ as usize } , 128usize , concat ! (
|
||||
as * const _ as usize } , 120usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Margin )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Padding as * const _ as usize } , 136usize , concat !
|
||||
Padding as * const _ as usize } , 128usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Padding
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . Border
|
||||
as * const _ as usize } , 144usize , concat ! (
|
||||
as * const _ as usize } , 136usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Border )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Outline as * const _ as usize } , 152usize , concat !
|
||||
Outline as * const _ as usize } , 144usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Outline
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . XUL as
|
||||
* const _ as usize } , 160usize , concat ! (
|
||||
* const _ as usize } , 152usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( XUL )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
SVGReset as * const _ as usize } , 168usize , concat !
|
||||
SVGReset as * const _ as usize } , 160usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( SVGReset
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . Column
|
||||
as * const _ as usize } , 176usize , concat ! (
|
||||
as * const _ as usize } , 168usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Column )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
Effects as * const _ as usize } , 184usize , concat !
|
||||
Effects as * const _ as usize } , 176usize , concat !
|
||||
(
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( Effects
|
||||
) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
custom_properties as * const _ as usize } , 192usize ,
|
||||
custom_properties as * const _ as usize } , 184usize ,
|
||||
concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
custom_properties ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
writing_mode as * const _ as usize } , 200usize ,
|
||||
writing_mode as * const _ as usize } , 192usize ,
|
||||
concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
|
@ -7680,10 +8104,16 @@ pub mod root {
|
|||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
font_computation_data as * const _ as usize } ,
|
||||
204usize , concat ! (
|
||||
196usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
font_computation_data ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . rules
|
||||
as * const _ as usize } , 208usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( rules )
|
||||
));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) .
|
||||
visited_style as * const _ as usize } , 216usize ,
|
||||
|
@ -7691,6 +8121,12 @@ pub mod root {
|
|||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! (
|
||||
visited_style ) ));
|
||||
assert_eq! (unsafe {
|
||||
& ( * ( 0 as * const ServoComputedValues2 ) ) . flags
|
||||
as * const _ as usize } , 224usize , concat ! (
|
||||
"Alignment of field: " , stringify ! (
|
||||
ServoComputedValues2 ) , "::" , stringify ! ( flags )
|
||||
));
|
||||
}
|
||||
#[repr(u8)]
|
||||
/**
|
||||
|
@ -38413,7 +38849,7 @@ pub mod root {
|
|||
root::nsCharTraits ) ));
|
||||
}
|
||||
#[test]
|
||||
fn __bindgen_test_layout__bindgen_ty_id_187141_instantiation_33() {
|
||||
fn __bindgen_test_layout__bindgen_ty_id_187475_instantiation_33() {
|
||||
assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! (
|
||||
"Size of template specialization: " , stringify ! ( u8 )
|
||||
));
|
||||
|
@ -38422,7 +38858,7 @@ pub mod root {
|
|||
) ));
|
||||
}
|
||||
#[test]
|
||||
fn __bindgen_test_layout__bindgen_ty_id_187177_instantiation_34() {
|
||||
fn __bindgen_test_layout__bindgen_ty_id_187511_instantiation_34() {
|
||||
assert_eq!(::std::mem::size_of::<u8>() , 1usize , concat ! (
|
||||
"Size of template specialization: " , stringify ! ( u8 )
|
||||
));
|
||||
|
|
|
@ -58,10 +58,9 @@ use properties::computed_value_flags::ComputedValueFlags;
|
|||
use properties::{longhands, FontComputationData, Importance, LonghandId};
|
||||
use properties::{PropertyDeclaration, PropertyDeclarationBlock, PropertyDeclarationId};
|
||||
use rule_tree::StrongRuleNode;
|
||||
use std::fmt::{self, Debug};
|
||||
use std::mem::{forget, transmute, zeroed};
|
||||
use std::ptr;
|
||||
use stylearc::Arc;
|
||||
use stylearc::{Arc, RawOffsetArc};
|
||||
use std::cmp;
|
||||
use values::{Auto, CustomIdent, Either, KeyframesName};
|
||||
use values::computed::ToComputedValue;
|
||||
|
@ -75,25 +74,23 @@ pub mod style_structs {
|
|||
% endfor
|
||||
}
|
||||
|
||||
// FIXME(emilio): Unify both definitions, since they're equal now.
|
||||
#[derive(Clone)]
|
||||
pub struct ComputedValues {
|
||||
% for style_struct in data.style_structs:
|
||||
${style_struct.ident}: Arc<style_structs::${style_struct.name}>,
|
||||
% endfor
|
||||
custom_properties: Option<Arc<CustomPropertiesMap>>,
|
||||
pub writing_mode: WritingMode,
|
||||
pub font_computation_data: FontComputationData,
|
||||
pub flags: ComputedValueFlags,
|
||||
|
||||
/// The rule node representing the ordered list of rules matched for this
|
||||
/// node. Can be None for default values and text nodes. This is
|
||||
/// essentially an optimization to avoid referencing the root rule node.
|
||||
pub rules: Option<StrongRuleNode>,
|
||||
/// The element's computed values if visited, only computed if there's a
|
||||
/// relevant link for this element. A element's "relevant link" is the
|
||||
/// element being matched if it is a link or the nearest ancestor link.
|
||||
visited_style: Option<Arc<ComputedValues>>,
|
||||
pub use ::gecko_bindings::structs::mozilla::ServoComputedValues2 as ComputedValues;
|
||||
|
||||
impl Clone for ComputedValues {
|
||||
fn clone(&self) -> Self {
|
||||
ComputedValues {
|
||||
% for style_struct in data.style_structs:
|
||||
${style_struct.gecko_name}: self.${style_struct.gecko_name}.clone(),
|
||||
% endfor
|
||||
custom_properties: self.custom_properties.clone(),
|
||||
writing_mode: self.writing_mode.clone(),
|
||||
font_computation_data: self.font_computation_data.clone(),
|
||||
flags: self.flags.clone(),
|
||||
rules: self.rules.clone(),
|
||||
visited_style: self.visited_style.clone(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl ComputedValues {
|
||||
|
@ -115,7 +112,7 @@ impl ComputedValues {
|
|||
rules,
|
||||
visited_style: visited_style,
|
||||
% for style_struct in data.style_structs:
|
||||
${style_struct.ident},
|
||||
${style_struct.gecko_name}: Arc::into_raw_offset(${style_struct.ident}),
|
||||
% endfor
|
||||
}
|
||||
}
|
||||
|
@ -129,7 +126,7 @@ impl ComputedValues {
|
|||
rules: None,
|
||||
visited_style: None,
|
||||
% for style_struct in data.style_structs:
|
||||
${style_struct.ident}: style_structs::${style_struct.name}::default(pres_context),
|
||||
${style_struct.gecko_name}: Arc::into_raw_offset(style_structs::${style_struct.name}::default(pres_context)),
|
||||
% endfor
|
||||
})
|
||||
}
|
||||
|
@ -149,20 +146,21 @@ impl ComputedValues {
|
|||
% for style_struct in data.style_structs:
|
||||
#[inline]
|
||||
pub fn clone_${style_struct.name_lower}(&self) -> Arc<style_structs::${style_struct.name}> {
|
||||
self.${style_struct.ident}.clone()
|
||||
Arc::from_raw_offset(self.${style_struct.gecko_name}.clone())
|
||||
}
|
||||
#[inline]
|
||||
pub fn get_${style_struct.name_lower}(&self) -> &style_structs::${style_struct.name} {
|
||||
&self.${style_struct.ident}
|
||||
&self.${style_struct.gecko_name}
|
||||
}
|
||||
|
||||
pub fn ${style_struct.name_lower}_arc(&self) -> &Arc<style_structs::${style_struct.name}> {
|
||||
&self.${style_struct.ident}
|
||||
|
||||
pub fn ${style_struct.name_lower}_arc(&self) -> &RawOffsetArc<style_structs::${style_struct.name}> {
|
||||
&self.${style_struct.gecko_name}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn mutate_${style_struct.name_lower}(&mut self) -> &mut style_structs::${style_struct.name} {
|
||||
Arc::make_mut(&mut self.${style_struct.ident})
|
||||
RawOffsetArc::make_mut(&mut self.${style_struct.gecko_name})
|
||||
}
|
||||
% endfor
|
||||
|
||||
|
@ -238,9 +236,7 @@ impl ComputedValues {
|
|||
}
|
||||
|
||||
<%def name="declare_style_struct(style_struct)">
|
||||
pub struct ${style_struct.gecko_struct_name} {
|
||||
gecko: ${style_struct.gecko_ffi_name},
|
||||
}
|
||||
pub use ::gecko_bindings::structs::mozilla::Gecko${style_struct.gecko_name} as ${style_struct.gecko_struct_name};
|
||||
impl ${style_struct.gecko_struct_name} {
|
||||
pub fn gecko(&self) -> &${style_struct.gecko_ffi_name} {
|
||||
&self.gecko
|
||||
|
@ -737,20 +733,6 @@ impl Clone for ${style_struct.gecko_struct_name} {
|
|||
}
|
||||
}
|
||||
|
||||
// FIXME(bholley): Make bindgen generate Debug for all types.
|
||||
%if style_struct.gecko_ffi_name in ("nsStyle" + x for x in "Border Display List Background Font SVGReset".split()):
|
||||
impl Debug for ${style_struct.gecko_struct_name} {
|
||||
// FIXME(bholley): Generate this.
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "Gecko style struct: ${style_struct.gecko_struct_name}")
|
||||
}
|
||||
}
|
||||
%else:
|
||||
impl Debug for ${style_struct.gecko_struct_name} {
|
||||
// FIXME(bholley): Generate this.
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.gecko.fmt(f) }
|
||||
}
|
||||
%endif
|
||||
</%def>
|
||||
|
||||
<%def name="impl_simple_type_with_conversion(ident, gecko_ffi_name=None)">
|
||||
|
|
|
@ -1886,7 +1886,7 @@ pub type ServoComputedValues = ComputedValues;
|
|||
///
|
||||
/// When needed, the structs may be copied in order to get mutated.
|
||||
#[cfg(feature = "servo")]
|
||||
#[cfg_attr(feature = "servo", derive(Clone))]
|
||||
#[cfg_attr(feature = "servo", derive(Clone, Debug))]
|
||||
pub struct ComputedValues {
|
||||
% for style_struct in data.active_style_structs():
|
||||
${style_struct.ident}: Arc<style_structs::${style_struct.name}>,
|
||||
|
@ -2237,14 +2237,6 @@ impl ComputedValues {
|
|||
}
|
||||
}
|
||||
|
||||
// We manually implement Debug for ComputedValues so that we can avoid the
|
||||
// verbose stringification of every property and instead focus on a few values.
|
||||
impl fmt::Debug for ComputedValues {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "ComputedValues {{ rules: {:?}, .. }}", self.rules)
|
||||
}
|
||||
}
|
||||
|
||||
/// Return a WritingMode bitflags from the relevant CSS properties.
|
||||
pub fn get_writing_mode(inheritedbox_style: &style_structs::InheritedBox) -> WritingMode {
|
||||
use logical_geometry;
|
||||
|
@ -2296,10 +2288,24 @@ pub fn get_writing_mode(inheritedbox_style: &style_structs::InheritedBox) -> Wri
|
|||
flags
|
||||
}
|
||||
|
||||
% if product == "gecko":
|
||||
pub use ::stylearc::RawOffsetArc as BuilderArc;
|
||||
/// Clone an arc, returning a regular arc
|
||||
fn clone_arc<T: 'static>(x: &BuilderArc<T>) -> Arc<T> {
|
||||
Arc::from_raw_offset(x.clone())
|
||||
}
|
||||
% else:
|
||||
pub use ::stylearc::Arc as BuilderArc;
|
||||
/// Clone an arc, returning a regular arc
|
||||
fn clone_arc<T: 'static>(x: &BuilderArc<T>) -> Arc<T> {
|
||||
x.clone()
|
||||
}
|
||||
% endif
|
||||
|
||||
/// A reference to a style struct of the parent, or our own style struct.
|
||||
pub enum StyleStructRef<'a, T: 'static> {
|
||||
/// A borrowed struct from the parent, for example, for inheriting style.
|
||||
Borrowed(&'a Arc<T>),
|
||||
Borrowed(&'a BuilderArc<T>),
|
||||
/// An owned struct, that we've already mutated.
|
||||
Owned(UniqueArc<T>),
|
||||
/// Temporarily vacated, will panic if accessed
|
||||
|
@ -2360,7 +2366,7 @@ impl<'a, T: 'a> StyleStructRef<'a, T>
|
|||
pub fn build(self) -> Arc<T> {
|
||||
match self {
|
||||
StyleStructRef::Owned(v) => v.shareable(),
|
||||
StyleStructRef::Borrowed(v) => v.clone(),
|
||||
StyleStructRef::Borrowed(v) => clone_arc(v),
|
||||
StyleStructRef::Vacated => panic!("Accessed vacated style struct")
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue