diff options
Diffstat (limited to 'components/layout')
-rw-r--r-- | components/layout/block.rs | 6 | ||||
-rw-r--r-- | components/layout/display_list_builder.rs | 2 | ||||
-rw-r--r-- | components/layout/floats.rs | 2 | ||||
-rw-r--r-- | components/layout/flow.rs | 2 | ||||
-rw-r--r-- | components/layout/inline.rs | 2 | ||||
-rw-r--r-- | components/layout/model.rs | 8 | ||||
-rw-r--r-- | components/layout/table_row.rs | 2 | ||||
-rw-r--r-- | components/layout/table_wrapper.rs | 4 | ||||
-rw-r--r-- | components/layout/traversal.rs | 12 | ||||
-rw-r--r-- | components/layout/wrapper.rs | 13 |
10 files changed, 22 insertions, 31 deletions
diff --git a/components/layout/block.rs b/components/layout/block.rs index 10bb2a055aa..eaa2e33f83a 100644 --- a/components/layout/block.rs +++ b/components/layout/block.rs @@ -88,7 +88,7 @@ impl FloatedBlockInfo { } /// The solutions for the block-size-and-margins constraint equation. -#[derive(Copy)] +#[derive(Copy, Clone)] struct BSizeConstraintSolution { block_start: Au, block_size: Au, @@ -1962,7 +1962,7 @@ impl fmt::Debug for BlockFlow { } /// The inputs for the inline-sizes-and-margins constraint equation. -#[derive(Debug, Copy)] +#[derive(Debug, Copy, Clone)] pub struct ISizeConstraintInput { pub computed_inline_size: MaybeAuto, pub inline_start_margin: MaybeAuto, @@ -1992,7 +1992,7 @@ impl ISizeConstraintInput { } /// The solutions for the inline-size-and-margins constraint equation. -#[derive(Copy, Debug)] +#[derive(Copy, Clone, Debug)] pub struct ISizeConstraintSolution { pub inline_start: Au, pub inline_size: Au, diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index 9061b845c9a..890a3b12128 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -1584,7 +1584,7 @@ impl BaseFlowDisplayListBuilding for BaseFlow { } // A helper data structure for gradients. -#[derive(Copy)] +#[derive(Copy, Clone)] struct StopRun { start_offset: f32, end_offset: f32, diff --git a/components/layout/floats.rs b/components/layout/floats.rs index 0d0ea9e0617..5f61760829b 100644 --- a/components/layout/floats.rs +++ b/components/layout/floats.rs @@ -29,7 +29,7 @@ impl FloatKind { } /// The kind of clearance: left, right, or both. -#[derive(Copy)] +#[derive(Copy, Clone)] pub enum ClearType { Left, Right, diff --git a/components/layout/flow.rs b/components/layout/flow.rs index 6ebf8530c90..5c058439d29 100644 --- a/components/layout/flow.rs +++ b/components/layout/flow.rs @@ -693,7 +693,7 @@ pub type DescendantOffsetIter<'a> = Zip<DescendantIter<'a>, IterMut<'a, Au>>; /// Information needed to compute absolute (i.e. viewport-relative) flow positions (not to be /// confused with absolutely-positioned flows). -#[derive(RustcEncodable, Copy)] +#[derive(RustcEncodable, Copy, Clone)] pub struct AbsolutePositionInfo { /// The size of the containing block for relatively-positioned descendants. pub relative_containing_block_size: LogicalSize<Au>, diff --git a/components/layout/inline.rs b/components/layout/inline.rs index d755678d7ed..e4f35b2f69a 100644 --- a/components/layout/inline.rs +++ b/components/layout/inline.rs @@ -65,7 +65,7 @@ static FONT_SUPERSCRIPT_OFFSET_RATIO: f64 = 0.34; /// with a float or a horizontal wall of the containing block. The block-start /// inline-start corner of the green zone is the same as that of the line, but /// the green zone can be taller and wider than the line itself. -#[derive(RustcEncodable, Debug, Copy)] +#[derive(RustcEncodable, Debug, Copy, Clone)] pub struct Line { /// A range of line indices that describe line breaks. /// diff --git a/components/layout/model.rs b/components/layout/model.rs index ebd70dcae84..8aecee621ee 100644 --- a/components/layout/model.rs +++ b/components/layout/model.rs @@ -19,7 +19,7 @@ use util::geometry::Au; use util::logical_geometry::LogicalMargin; /// A collapsible margin. See CSS 2.1 § 8.3.1. -#[derive(Copy)] +#[derive(Copy, Clone)] pub struct AdjoiningMargins { /// The value of the greatest positive margin. pub most_positive: Au, @@ -62,7 +62,7 @@ impl AdjoiningMargins { } /// Represents the block-start and block-end margins of a flow with collapsible margins. See CSS 2.1 § 8.3.1. -#[derive(Copy)] +#[derive(Copy, Clone)] pub enum CollapsibleMargins { /// Margins may not collapse with this flow. None(Au, Au), @@ -260,7 +260,7 @@ impl MarginCollapseInfo { } } -#[derive(Copy)] +#[derive(Copy, Clone)] pub enum MarginCollapseState { AccumulatingCollapsibleTopMargin, AccumulatingMarginIn, @@ -357,7 +357,7 @@ impl IntrinsicISizesContribution { } /// Useful helper data type when computing values for blocks and positioned elements. -#[derive(Copy, PartialEq, Debug)] +#[derive(Copy, Clone, PartialEq, Debug)] pub enum MaybeAuto { Auto, Specified(Au), diff --git a/components/layout/table_row.rs b/components/layout/table_row.rs index ef3f70f5d6f..3beeb1f7fe2 100644 --- a/components/layout/table_row.rs +++ b/components/layout/table_row.rs @@ -66,7 +66,7 @@ impl Encodable for TableRowFlow { } /// Information about the column inline size and span for each cell. -#[derive(RustcEncodable, Copy)] +#[derive(RustcEncodable, Copy, Clone)] pub struct CellIntrinsicInlineSize { /// Inline sizes that this cell contributes to the column. pub column_size: ColumnIntrinsicInlineSize, diff --git a/components/layout/table_wrapper.rs b/components/layout/table_wrapper.rs index a336ca55cfb..5db3674341c 100644 --- a/components/layout/table_wrapper.rs +++ b/components/layout/table_wrapper.rs @@ -37,7 +37,7 @@ use style::properties::ComputedValues; use style::values::CSSFloat; use style::values::computed::LengthOrPercentageOrAuto; -#[derive(Copy, RustcEncodable, Debug)] +#[derive(Copy, Clone, RustcEncodable, Debug)] pub enum TableLayout { Fixed, Auto @@ -565,7 +565,7 @@ impl<'a> Add for &'a AutoLayoutCandidateGuess { /// The `CSSFloat` member specifies the weight of the smaller of the two guesses, on a scale from /// 0.0 to 1.0. -#[derive(Copy, PartialEq, Debug)] +#[derive(Copy, Clone, PartialEq, Debug)] enum SelectedAutoLayoutCandidateGuess { UseMinimumGuess, InterpolateBetweenMinimumGuessAndMinimumPercentageGuess(CSSFloat), diff --git a/components/layout/traversal.rs b/components/layout/traversal.rs index 5fe8ec3e66d..0441f4fa76a 100644 --- a/components/layout/traversal.rs +++ b/components/layout/traversal.rs @@ -119,7 +119,7 @@ fn insert_ancestors_into_bloom_filter(bf: &mut Box<BloomFilter>, /// The recalc-style-for-node traversal, which styles each node and must run before /// layout computation. This computes the styles applied to each node. -#[derive(Copy)] +#[derive(Copy, Clone)] pub struct RecalcStyleForNode<'a> { pub layout_context: &'a LayoutContext<'a>, } @@ -211,7 +211,7 @@ impl<'a> PreorderDomTraversal for RecalcStyleForNode<'a> { } /// The flow construction traversal, which builds flows for styled nodes. -#[derive(Copy)] +#[derive(Copy, Clone)] pub struct ConstructFlows<'a> { pub layout_context: &'a LayoutContext<'a>, } @@ -310,7 +310,7 @@ impl<'a> PostorderFlowTraversal for BubbleISizes<'a> { } /// The assign-inline-sizes traversal. In Gecko this corresponds to `Reflow`. -#[derive(Copy)] +#[derive(Copy, Clone)] pub struct AssignISizes<'a> { pub layout_context: &'a LayoutContext<'a>, } @@ -331,7 +331,7 @@ impl<'a> PreorderFlowTraversal for AssignISizes<'a> { /// layout computation. Determines the final block-sizes for all layout objects, computes /// positions, and computes overflow regions. In Gecko this corresponds to `Reflow` and /// `FinishAndStoreOverflow`. -#[derive(Copy)] +#[derive(Copy, Clone)] pub struct AssignBSizesAndStoreOverflow<'a> { pub layout_context: &'a LayoutContext<'a>, } @@ -356,7 +356,7 @@ impl<'a> PostorderFlowTraversal for AssignBSizesAndStoreOverflow<'a> { } } -#[derive(Copy)] +#[derive(Copy, Clone)] pub struct ComputeAbsolutePositions<'a> { pub layout_context: &'a LayoutContext<'a>, } @@ -368,7 +368,7 @@ impl<'a> PreorderFlowTraversal for ComputeAbsolutePositions<'a> { } } -#[derive(Copy)] +#[derive(Copy, Clone)] pub struct BuildDisplayList<'a> { pub layout_context: &'a LayoutContext<'a>, } diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index 44b184b897c..db99183939e 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -170,7 +170,7 @@ pub trait TLayoutNode { /// A wrapper so that layout can access only the methods that it should have access to. Layout must /// only ever see these and must never see instances of `LayoutJS`. -#[derive(Copy)] +#[derive(Copy, Clone)] pub struct LayoutNode<'a> { /// The wrapped node. node: LayoutJS<Node>, @@ -179,15 +179,6 @@ pub struct LayoutNode<'a> { pub chain: PhantomData<&'a ()>, } -impl<'ln> Clone for LayoutNode<'ln> { - fn clone(&self) -> LayoutNode<'ln> { - LayoutNode { - node: self.node.clone(), - chain: self.chain, - } - } -} - impl<'a> PartialEq for LayoutNode<'a> { #[inline] fn eq(&self, other: &LayoutNode) -> bool { @@ -520,7 +511,7 @@ impl<'a> Iterator for LayoutTreeIterator<'a> { } /// A wrapper around elements that ensures layout can only ever access safe properties. -#[derive(Copy)] +#[derive(Copy, Clone)] pub struct LayoutElement<'le> { element: &'le Element, } |