mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
style: Add a Zero trait that doesn't require Add, and use it in place of num_traits and IsZeroLength.
Use it to be consistent in InsetRect serialization and storage between Servo and Gecko. Differential Revision: https://phabricator.services.mozilla.com/D21493
This commit is contained in:
parent
4496411edc
commit
7d01114cbf
29 changed files with 179 additions and 186 deletions
|
@ -7,8 +7,8 @@
|
|||
use crate::parser::{Parse, ParserContext};
|
||||
#[cfg(feature = "gecko")]
|
||||
use crate::values::computed::ExtremumLength;
|
||||
use crate::Zero;
|
||||
use cssparser::Parser;
|
||||
use num_traits::Zero;
|
||||
use style_traits::ParseError;
|
||||
|
||||
/// A `<length-percentage> | auto` value.
|
||||
|
@ -67,6 +67,19 @@ impl<LengthPercentage> LengthPercentageOrAuto<LengthPercentage> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<LengthPercentage: Zero> Zero for LengthPercentageOrAuto<LengthPercentage> {
|
||||
fn zero() -> Self {
|
||||
LengthPercentageOrAuto::LengthPercentage(Zero::zero())
|
||||
}
|
||||
|
||||
fn is_zero(&self) -> bool {
|
||||
match *self {
|
||||
LengthPercentageOrAuto::LengthPercentage(ref l) => l.is_zero(),
|
||||
LengthPercentageOrAuto::Auto => false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<LengthPercentage: Parse> Parse for LengthPercentageOrAuto<LengthPercentage> {
|
||||
fn parse<'i, 't>(
|
||||
context: &ParserContext,
|
||||
|
@ -186,12 +199,15 @@ pub enum GenericLengthOrNumber<L, N> {
|
|||
|
||||
pub use self::GenericLengthOrNumber as LengthOrNumber;
|
||||
|
||||
impl<L, N> LengthOrNumber<L, N> {
|
||||
/// Returns `0`.
|
||||
pub fn zero() -> Self
|
||||
where
|
||||
N: Zero,
|
||||
{
|
||||
LengthOrNumber::Number(num_traits::Zero::zero())
|
||||
impl<L, N: Zero> Zero for LengthOrNumber<L, N> {
|
||||
fn zero() -> Self {
|
||||
LengthOrNumber::Number(Zero::zero())
|
||||
}
|
||||
|
||||
fn is_zero(&self) -> bool {
|
||||
match *self {
|
||||
LengthOrNumber::Number(ref n) => n.is_zero(),
|
||||
LengthOrNumber::Length(..) => false,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue