mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
style: Use rust types for background-size.
Hopefully straight-forward. Differential Revision: https://phabricator.services.mozilla.com/D19625
This commit is contained in:
parent
1e6338e1ee
commit
07cb325402
6 changed files with 27 additions and 137 deletions
|
@ -4,7 +4,7 @@
|
|||
|
||||
//! Generic types for CSS values related to backgrounds.
|
||||
|
||||
use crate::values::generics::length::LengthPercentageOrAuto;
|
||||
use crate::values::generics::length::{LengthPercentageOrAuto, GenericLengthPercentageOrAuto};
|
||||
use std::fmt::{self, Write};
|
||||
use style_traits::{CssWriter, ToCss};
|
||||
|
||||
|
@ -22,13 +22,14 @@ use style_traits::{CssWriter, ToCss};
|
|||
ToAnimatedZero,
|
||||
ToComputedValue,
|
||||
)]
|
||||
pub enum BackgroundSize<LengthPercentage> {
|
||||
#[repr(C, u8)]
|
||||
pub enum GenericBackgroundSize<LengthPercent> {
|
||||
/// `<width> <height>`
|
||||
Explicit {
|
||||
ExplicitSize {
|
||||
/// Explicit width.
|
||||
width: LengthPercentageOrAuto<LengthPercentage>,
|
||||
width: GenericLengthPercentageOrAuto<LengthPercent>,
|
||||
/// Explicit height.
|
||||
height: LengthPercentageOrAuto<LengthPercentage>,
|
||||
height: GenericLengthPercentageOrAuto<LengthPercent>,
|
||||
},
|
||||
/// `cover`
|
||||
#[animation(error)]
|
||||
|
@ -38,6 +39,8 @@ pub enum BackgroundSize<LengthPercentage> {
|
|||
Contain,
|
||||
}
|
||||
|
||||
pub use self::GenericBackgroundSize as BackgroundSize;
|
||||
|
||||
impl<LengthPercentage> ToCss for BackgroundSize<LengthPercentage>
|
||||
where
|
||||
LengthPercentage: ToCss,
|
||||
|
@ -47,7 +50,7 @@ where
|
|||
W: Write,
|
||||
{
|
||||
match self {
|
||||
BackgroundSize::Explicit { width, height } => {
|
||||
BackgroundSize::ExplicitSize { width, height } => {
|
||||
width.to_css(dest)?;
|
||||
// NOTE(emilio): We should probably simplify all these in case
|
||||
// `width == `height`, but all other browsers agree on only
|
||||
|
@ -63,3 +66,13 @@ where
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl<LengthPercentage> BackgroundSize<LengthPercentage> {
|
||||
/// Returns `auto auto`.
|
||||
pub fn auto() -> Self {
|
||||
GenericBackgroundSize::ExplicitSize {
|
||||
width: LengthPercentageOrAuto::Auto,
|
||||
height: LengthPercentageOrAuto::Auto,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue