mirror of
https://github.com/servo/servo.git
synced 2025-08-10 16:05:43 +01:00
Use generics for border-image-slice property
This commit is contained in:
parent
c8eb277ca5
commit
078d4ed40c
8 changed files with 77 additions and 157 deletions
|
@ -6,9 +6,10 @@
|
|||
|
||||
use cssparser::Parser;
|
||||
use parser::{Parse, ParserContext};
|
||||
use values::generics::border::BorderImageSlice as GenericBorderImageSlice;
|
||||
use values::generics::border::BorderImageWidthSide as GenericBorderImageWidthSide;
|
||||
use values::generics::rect::Rect;
|
||||
use values::specified::Number;
|
||||
use values::specified::{Number, NumberOrPercentage};
|
||||
use values::specified::length::LengthOrPercentage;
|
||||
|
||||
/// A specified value for the `border-image-width` property.
|
||||
|
@ -17,6 +18,9 @@ pub type BorderImageWidth = Rect<BorderImageWidthSide>;
|
|||
/// A specified value for a single side of a `border-image-width` property.
|
||||
pub type BorderImageWidthSide = GenericBorderImageWidthSide<LengthOrPercentage, Number>;
|
||||
|
||||
/// A specified value for the `border-image-slice` property.
|
||||
pub type BorderImageSlice = GenericBorderImageSlice<NumberOrPercentage>;
|
||||
|
||||
impl BorderImageWidthSide {
|
||||
/// Returns `1`.
|
||||
#[inline]
|
||||
|
@ -39,3 +43,17 @@ impl Parse for BorderImageWidthSide {
|
|||
Ok(GenericBorderImageWidthSide::Number(num))
|
||||
}
|
||||
}
|
||||
|
||||
impl Parse for BorderImageSlice {
|
||||
fn parse(context: &ParserContext, input: &mut Parser) -> Result<Self, ()> {
|
||||
let mut fill = input.try(|i| i.expect_ident_matching("fill")).is_ok();
|
||||
let offsets = Rect::parse_with(context, input, NumberOrPercentage::parse_non_negative)?;
|
||||
if !fill {
|
||||
fill = input.try(|i| i.expect_ident_matching("fill")).is_ok();
|
||||
}
|
||||
Ok(GenericBorderImageSlice {
|
||||
offsets: offsets,
|
||||
fill: fill,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue