style: Derive Default for EagerPseudoStyles. draft
authorEmilio Cobos Álvarez <emilio@crisal.io>
Sun, 09 Jul 2017 20:57:06 +0200
changeset 606835 b335eeecfa557f217354b53830e6aedca9207ba0
parent 606834 42a5f04365621b56895b2fe1dadcbb709e485687
child 606836 e6690861830433f2c21d97d805e13a0e79db6ea5
push id67812
push userbmo:emilio+bugs@crisal.io
push dateTue, 11 Jul 2017 13:56:11 +0000
milestone56.0a1
style: Derive Default for EagerPseudoStyles. MozReview-Commit-ID: HkTtrV5CcF0
servo/components/style/data.rs
--- a/servo/components/style/data.rs
+++ b/servo/components/style/data.rs
@@ -100,17 +100,17 @@ impl RestyleData {
 }
 
 /// A lazily-allocated list of styles for eagerly-cascaded pseudo-elements.
 ///
 /// We use an Arc so that sharing these styles via the style sharing cache does
 /// not require duplicate allocations. We leverage the copy-on-write semantics of
 /// Arc::make_mut(), which is free (i.e. does not require atomic RMU operations)
 /// in servo_arc.
-#[derive(Clone, Debug)]
+#[derive(Clone, Debug, Default)]
 pub struct EagerPseudoStyles(Option<Arc<EagerPseudoArray>>);
 
 #[derive(Debug, Default)]
 struct EagerPseudoArray(EagerPseudoArrayInner);
 type EagerPseudoArrayInner = [Option<Arc<ComputedValues>>; EAGER_PSEUDO_COUNT];
 
 impl Deref for EagerPseudoArray {
     type Target = EagerPseudoArrayInner;
@@ -229,34 +229,24 @@ impl EagerPseudoStyles {
             (&None, &None) => true,
             _ => false,
         }
     }
 }
 
 /// The styles associated with a node, including the styles for any
 /// pseudo-elements.
-#[derive(Clone, Debug)]
+#[derive(Clone, Debug, Default)]
 pub struct ElementStyles {
     /// The element's style.
     pub primary: Option<Arc<ComputedValues>>,
     /// A list of the styles for the element's eagerly-cascaded pseudo-elements.
     pub pseudos: EagerPseudoStyles,
 }
 
-impl Default for ElementStyles {
-    /// Construct an empty `ElementStyles`.
-    fn default() -> Self {
-        ElementStyles {
-            primary: None,
-            pseudos: EagerPseudoStyles(None),
-        }
-    }
-}
-
 impl ElementStyles {
     /// Returns the primary style.
     pub fn get_primary(&self) -> Option<&Arc<ComputedValues>> {
         self.primary.as_ref()
     }
 
     /// Returns the mutable primary style.
     pub fn get_primary_mut(&mut self) -> Option<&mut Arc<ComputedValues>> {