mirror of
https://github.com/servo/servo.git
synced 2025-10-09 13:09:25 +01:00
This patch replaces the handwritten MallocSizeOf implementation for PropertyDeclaration with a derived one, which gives much more thorough measurement. This requires (a) deriving MallocSizeOf for a *lot* of additional types (most of which already have `derive(HeapSizeOf)` in Servo builds), and (b) implementing MallocSizeOf for a few more types in the `malloc_size_of` crate. These changes would significantly improve the reporting coverage for gmail if it weren't for the fact that SpecifiedUrl isn't measured due to a lack of clarity about its fields; that can be fixed as a follow-up once bug 1397971 has landed.
50 lines
1.2 KiB
Rust
50 lines
1.2 KiB
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 http://mozilla.org/MPL/2.0/. */
|
|
|
|
//! Generic types for box properties.
|
|
|
|
use values::animated::ToAnimatedZero;
|
|
|
|
/// A generic value for the `vertical-align` property.
|
|
#[cfg_attr(feature = "gecko", derive(MallocSizeOf))]
|
|
#[cfg_attr(feature = "servo", derive(HeapSizeOf))]
|
|
#[derive(Animate, Clone, ComputeSquaredDistance, Copy, Debug, PartialEq)]
|
|
#[derive(ToComputedValue, ToCss)]
|
|
pub enum VerticalAlign<LengthOrPercentage> {
|
|
/// `baseline`
|
|
Baseline,
|
|
/// `sub`
|
|
Sub,
|
|
/// `super`
|
|
Super,
|
|
/// `top`
|
|
Top,
|
|
/// `text-top`
|
|
TextTop,
|
|
/// `middle`
|
|
Middle,
|
|
/// `bottom`
|
|
Bottom,
|
|
/// `text-bottom`
|
|
TextBottom,
|
|
/// `-moz-middle-with-baseline`
|
|
#[cfg(feature = "gecko")]
|
|
MozMiddleWithBaseline,
|
|
/// `<length-percentage>`
|
|
Length(LengthOrPercentage),
|
|
}
|
|
|
|
impl<L> VerticalAlign<L> {
|
|
/// Returns `baseline`.
|
|
#[inline]
|
|
pub fn baseline() -> Self {
|
|
VerticalAlign::Baseline
|
|
}
|
|
}
|
|
|
|
impl<L> ToAnimatedZero for VerticalAlign<L> {
|
|
fn to_animated_zero(&self) -> Result<Self, ()> {
|
|
Err(())
|
|
}
|
|
}
|