servo/components/layout_2020/wrapper.rs
Anthony Ramine e3be136c9b Rename a bunch of style/layout data items
GetLayoutData::get_style_and_layout_data becomes
GetOpaqueStyleAndLayoutData::get_opaque_style_and_layout_data.

GetRawData::get_raw_data becomes GetStyleAndLayoutData::get_style_and_layout_data.

LayoutNode::init_style_and_layout_data becomes
LayoutNode::init_opaque_style_and_layout_data.

LayoutNode::take_style_and_layout_data becomes
LayoutNode::take_opaque_style_and_layout_data.
2020-04-06 12:39:52 +02:00

22 lines
751 B
Rust

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
#![allow(unsafe_code)]
use crate::data::StyleAndLayoutData;
use script_layout_interface::wrapper_traits::GetOpaqueStyleAndLayoutData;
pub trait GetStyleAndLayoutData<'dom> {
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData>;
}
impl<'dom, T> GetStyleAndLayoutData<'dom> for T
where
T: GetOpaqueStyleAndLayoutData<'dom>,
{
fn get_style_and_layout_data(self) -> Option<&'dom StyleAndLayoutData> {
self.get_opaque_style_and_layout_data()
.map(|opaque| opaque.downcast_ref().unwrap())
}
}