mirror of
https://github.com/servo/servo.git
synced 2025-09-20 20:00:13 +01:00
style: Reformat recent style system changes.
This commit is contained in:
parent
87ec2cefc5
commit
81f40a57e4
13 changed files with 207 additions and 214 deletions
|
@ -474,10 +474,7 @@ pub struct CounterRange {
|
||||||
/// Empty represents 'auto'
|
/// Empty represents 'auto'
|
||||||
#[derive(Clone, Debug, ToShmem, ToCss)]
|
#[derive(Clone, Debug, ToShmem, ToCss)]
|
||||||
#[css(comma)]
|
#[css(comma)]
|
||||||
pub struct CounterRanges(
|
pub struct CounterRanges(#[css(iterable, if_empty = "auto")] pub crate::OwnedSlice<CounterRange>);
|
||||||
#[css(iterable, if_empty = "auto")]
|
|
||||||
pub crate::OwnedSlice<CounterRange>,
|
|
||||||
);
|
|
||||||
|
|
||||||
/// A bound found in `CounterRanges`.
|
/// A bound found in `CounterRanges`.
|
||||||
#[derive(Clone, Copy, Debug, ToCss, ToShmem)]
|
#[derive(Clone, Copy, Debug, ToCss, ToShmem)]
|
||||||
|
@ -503,13 +500,9 @@ impl Parse for CounterRanges {
|
||||||
let ranges = input.parse_comma_separated(|input| {
|
let ranges = input.parse_comma_separated(|input| {
|
||||||
let start = parse_bound(context, input)?;
|
let start = parse_bound(context, input)?;
|
||||||
let end = parse_bound(context, input)?;
|
let end = parse_bound(context, input)?;
|
||||||
if let (CounterBound::Integer(start), CounterBound::Integer(end)) =
|
if let (CounterBound::Integer(start), CounterBound::Integer(end)) = (start, end) {
|
||||||
(start, end)
|
|
||||||
{
|
|
||||||
if start > end {
|
if start > end {
|
||||||
return Err(
|
return Err(input.new_custom_error(StyleParseErrorKind::UnspecifiedError));
|
||||||
input.new_custom_error(StyleParseErrorKind::UnspecifiedError)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(CounterRange { start, end })
|
Ok(CounterRange { start, end })
|
||||||
|
|
|
@ -62,9 +62,8 @@ pub fn profiler_is_active() -> bool {
|
||||||
use std::mem;
|
use std::mem;
|
||||||
use std::sync::atomic::{AtomicU32, Ordering};
|
use std::sync::atomic::{AtomicU32, Ordering};
|
||||||
|
|
||||||
let active_and_features: &AtomicU32 = unsafe {
|
let active_and_features: &AtomicU32 =
|
||||||
mem::transmute(&detail::RacyFeatures_sActiveAndFeatures)
|
unsafe { mem::transmute(&detail::RacyFeatures_sActiveAndFeatures) };
|
||||||
};
|
|
||||||
(active_and_features.load(Ordering::Relaxed) & detail::RacyFeatures_Active) != 0
|
(active_and_features.load(Ordering::Relaxed) & detail::RacyFeatures_Active) != 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -112,9 +112,8 @@ macro_rules! define_keyword_type {
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! profiler_label {
|
macro_rules! profiler_label {
|
||||||
($label_type:ident) => {
|
($label_type:ident) => {
|
||||||
let mut _profiler_label: $crate::gecko_bindings::structs::AutoProfilerLabel = unsafe {
|
let mut _profiler_label: $crate::gecko_bindings::structs::AutoProfilerLabel =
|
||||||
::std::mem::uninitialized()
|
unsafe { ::std::mem::uninitialized() };
|
||||||
};
|
|
||||||
let _profiler_label = if $crate::gecko::profiler::profiler_is_active() {
|
let _profiler_label = if $crate::gecko::profiler::profiler_is_active() {
|
||||||
unsafe {
|
unsafe {
|
||||||
Some($crate::gecko::profiler::AutoProfilerLabel::new(
|
Some($crate::gecko::profiler::AutoProfilerLabel::new(
|
||||||
|
@ -125,12 +124,12 @@ macro_rules! profiler_label {
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/// No-op when the Gecko profiler is not available.
|
/// No-op when the Gecko profiler is not available.
|
||||||
#[cfg(not(feature = "gecko_profiler"))]
|
#[cfg(not(feature = "gecko_profiler"))]
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! profiler_label {
|
macro_rules! profiler_label {
|
||||||
($label_type:ident) => {}
|
($label_type:ident) => {};
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,8 +105,7 @@ where
|
||||||
MatchingMode::Normal => element.rule_hash_target(),
|
MatchingMode::Normal => element.rule_hash_target(),
|
||||||
};
|
};
|
||||||
|
|
||||||
let matches_user_and_author_rules =
|
let matches_user_and_author_rules = rule_hash_target.matches_user_and_author_rules();
|
||||||
rule_hash_target.matches_user_and_author_rules();
|
|
||||||
|
|
||||||
// Gecko definitely has pseudo-elements with style attributes, like
|
// Gecko definitely has pseudo-elements with style attributes, like
|
||||||
// ::-moz-color-swatch.
|
// ::-moz-color-swatch.
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
use crate::properties::PropertyId;
|
use crate::properties::PropertyId;
|
||||||
use crate::values::computed::length::LengthPercentage;
|
use crate::values::computed::length::LengthPercentage;
|
||||||
use crate::values::computed::url::{ComputedUrl, ComputedImageUrl};
|
use crate::values::computed::url::{ComputedImageUrl, ComputedUrl};
|
||||||
use crate::values::computed::Angle as ComputedAngle;
|
use crate::values::computed::Angle as ComputedAngle;
|
||||||
use crate::values::computed::Image;
|
use crate::values::computed::Image;
|
||||||
use crate::values::specified::SVGPathData;
|
use crate::values::specified::SVGPathData;
|
||||||
|
|
|
@ -7,10 +7,10 @@
|
||||||
use crate::values::computed::length::{NonNegativeLength, NonNegativeLengthPercentage};
|
use crate::values::computed::length::{NonNegativeLength, NonNegativeLengthPercentage};
|
||||||
use crate::values::computed::{NonNegativeNumber, NonNegativeNumberOrPercentage};
|
use crate::values::computed::{NonNegativeNumber, NonNegativeNumberOrPercentage};
|
||||||
use crate::values::generics::border::BorderCornerRadius as GenericBorderCornerRadius;
|
use crate::values::generics::border::BorderCornerRadius as GenericBorderCornerRadius;
|
||||||
use crate::values::generics::border::GenericBorderImageSideWidth;
|
|
||||||
use crate::values::generics::border::BorderImageSlice as GenericBorderImageSlice;
|
use crate::values::generics::border::BorderImageSlice as GenericBorderImageSlice;
|
||||||
use crate::values::generics::border::BorderRadius as GenericBorderRadius;
|
use crate::values::generics::border::BorderRadius as GenericBorderRadius;
|
||||||
use crate::values::generics::border::BorderSpacing as GenericBorderSpacing;
|
use crate::values::generics::border::BorderSpacing as GenericBorderSpacing;
|
||||||
|
use crate::values::generics::border::GenericBorderImageSideWidth;
|
||||||
use crate::values::generics::rect::Rect;
|
use crate::values::generics::rect::Rect;
|
||||||
use crate::values::generics::size::Size2D;
|
use crate::values::generics::size::Size2D;
|
||||||
use crate::values::generics::NonNegative;
|
use crate::values::generics::NonNegative;
|
||||||
|
|
|
@ -455,10 +455,7 @@ where
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn from_computed_value(computed: &Self::ComputedValue) -> Self {
|
fn from_computed_value(computed: &Self::ComputedValue) -> Self {
|
||||||
computed
|
computed.iter().map(T::from_computed_value).collect()
|
||||||
.iter()
|
|
||||||
.map(T::from_computed_value)
|
|
||||||
.collect()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -240,16 +240,24 @@ where
|
||||||
#[allow(missing_docs)]
|
#[allow(missing_docs)]
|
||||||
#[css(comma, function = "interpolatematrix")]
|
#[css(comma, function = "interpolatematrix")]
|
||||||
InterpolateMatrix {
|
InterpolateMatrix {
|
||||||
from_list: GenericTransform<GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>>,
|
from_list: GenericTransform<
|
||||||
to_list: GenericTransform<GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>>,
|
GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>,
|
||||||
|
>,
|
||||||
|
to_list: GenericTransform<
|
||||||
|
GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>,
|
||||||
|
>,
|
||||||
progress: computed::Percentage,
|
progress: computed::Percentage,
|
||||||
},
|
},
|
||||||
/// A intermediate type for accumulation of mismatched transform lists.
|
/// A intermediate type for accumulation of mismatched transform lists.
|
||||||
#[allow(missing_docs)]
|
#[allow(missing_docs)]
|
||||||
#[css(comma, function = "accumulatematrix")]
|
#[css(comma, function = "accumulatematrix")]
|
||||||
AccumulateMatrix {
|
AccumulateMatrix {
|
||||||
from_list: GenericTransform<GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>>,
|
from_list: GenericTransform<
|
||||||
to_list: GenericTransform<GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>>,
|
GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>,
|
||||||
|
>,
|
||||||
|
to_list: GenericTransform<
|
||||||
|
GenericTransformOperation<Angle, Number, Length, Integer, LengthPercentage>,
|
||||||
|
>,
|
||||||
count: Integer,
|
count: Integer,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,9 +140,7 @@ impl Parse for Quotes {
|
||||||
loop {
|
loop {
|
||||||
let location = input.current_source_location();
|
let location = input.current_source_location();
|
||||||
let opening = match input.next() {
|
let opening = match input.next() {
|
||||||
Ok(&Token::QuotedString(ref value)) => {
|
Ok(&Token::QuotedString(ref value)) => value.as_ref().to_owned().into(),
|
||||||
value.as_ref().to_owned().into()
|
|
||||||
},
|
|
||||||
Ok(t) => return Err(location.new_unexpected_token_error(t.clone())),
|
Ok(t) => return Err(location.new_unexpected_token_error(t.clone())),
|
||||||
Err(_) => break,
|
Err(_) => break,
|
||||||
};
|
};
|
||||||
|
|
|
@ -298,11 +298,7 @@ impl Parse for MozContextProperties {
|
||||||
return Ok(Self::default());
|
return Ok(Self::default());
|
||||||
}
|
}
|
||||||
|
|
||||||
let ident = CustomIdent::from_ident(
|
let ident = CustomIdent::from_ident(location, ident, &["all", "none", "auto"])?;
|
||||||
location,
|
|
||||||
ident,
|
|
||||||
&["all", "none", "auto"],
|
|
||||||
)?;
|
|
||||||
|
|
||||||
if ident.0 == atom!("fill") {
|
if ident.0 == atom!("fill") {
|
||||||
bits.insert(ContextPropertyBits::FILL);
|
bits.insert(ContextPropertyBits::FILL);
|
||||||
|
|
|
@ -162,9 +162,9 @@ impl Parse for TextOverflowSide {
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Token::QuotedString(ref v) => Ok(TextOverflowSide::String(
|
Token::QuotedString(ref v) => {
|
||||||
v.as_ref().to_owned().into(),
|
Ok(TextOverflowSide::String(v.as_ref().to_owned().into()))
|
||||||
)),
|
},
|
||||||
ref t => Err(location.new_unexpected_token_error(t.clone())),
|
ref t => Err(location.new_unexpected_token_error(t.clone())),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,180 +45,184 @@ impl Transform {
|
||||||
return Ok(generic::Transform::none());
|
return Ok(generic::Transform::none());
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(generic::Transform(Space::parse(input, |input| {
|
Ok(generic::Transform(
|
||||||
let function = input.expect_function()?.clone();
|
Space::parse(input, |input| {
|
||||||
input.parse_nested_block(|input| {
|
let function = input.expect_function()?.clone();
|
||||||
let location = input.current_source_location();
|
input.parse_nested_block(|input| {
|
||||||
let result = match_ignore_ascii_case! { &function,
|
let location = input.current_source_location();
|
||||||
"matrix" => {
|
let result = match_ignore_ascii_case! { &function,
|
||||||
let a = Number::parse(context, input)?;
|
"matrix" => {
|
||||||
input.expect_comma()?;
|
let a = Number::parse(context, input)?;
|
||||||
let b = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let b = Number::parse(context, input)?;
|
||||||
let c = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let c = Number::parse(context, input)?;
|
||||||
let d = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let d = Number::parse(context, input)?;
|
||||||
// Standard matrix parsing.
|
input.expect_comma()?;
|
||||||
let e = Number::parse(context, input)?;
|
// Standard matrix parsing.
|
||||||
input.expect_comma()?;
|
let e = Number::parse(context, input)?;
|
||||||
let f = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
Ok(generic::TransformOperation::Matrix(Matrix { a, b, c, d, e, f }))
|
let f = Number::parse(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::Matrix(Matrix { a, b, c, d, e, f }))
|
||||||
"matrix3d" => {
|
},
|
||||||
let m11 = Number::parse(context, input)?;
|
"matrix3d" => {
|
||||||
input.expect_comma()?;
|
let m11 = Number::parse(context, input)?;
|
||||||
let m12 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m12 = Number::parse(context, input)?;
|
||||||
let m13 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m13 = Number::parse(context, input)?;
|
||||||
let m14 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m14 = Number::parse(context, input)?;
|
||||||
let m21 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m21 = Number::parse(context, input)?;
|
||||||
let m22 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m22 = Number::parse(context, input)?;
|
||||||
let m23 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m23 = Number::parse(context, input)?;
|
||||||
let m24 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m24 = Number::parse(context, input)?;
|
||||||
let m31 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m31 = Number::parse(context, input)?;
|
||||||
let m32 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m32 = Number::parse(context, input)?;
|
||||||
let m33 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m33 = Number::parse(context, input)?;
|
||||||
let m34 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m34 = Number::parse(context, input)?;
|
||||||
// Standard matrix3d parsing.
|
input.expect_comma()?;
|
||||||
let m41 = Number::parse(context, input)?;
|
// Standard matrix3d parsing.
|
||||||
input.expect_comma()?;
|
let m41 = Number::parse(context, input)?;
|
||||||
let m42 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m42 = Number::parse(context, input)?;
|
||||||
let m43 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let m43 = Number::parse(context, input)?;
|
||||||
let m44 = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
Ok(generic::TransformOperation::Matrix3D(Matrix3D {
|
let m44 = Number::parse(context, input)?;
|
||||||
m11, m12, m13, m14,
|
Ok(generic::TransformOperation::Matrix3D(Matrix3D {
|
||||||
m21, m22, m23, m24,
|
m11, m12, m13, m14,
|
||||||
m31, m32, m33, m34,
|
m21, m22, m23, m24,
|
||||||
m41, m42, m43, m44,
|
m31, m32, m33, m34,
|
||||||
}))
|
m41, m42, m43, m44,
|
||||||
},
|
}))
|
||||||
"translate" => {
|
},
|
||||||
let sx = specified::LengthPercentage::parse(context, input)?;
|
"translate" => {
|
||||||
if input.try(|input| input.expect_comma()).is_ok() {
|
let sx = specified::LengthPercentage::parse(context, input)?;
|
||||||
let sy = specified::LengthPercentage::parse(context, input)?;
|
if input.try(|input| input.expect_comma()).is_ok() {
|
||||||
Ok(generic::TransformOperation::Translate(sx, sy))
|
let sy = specified::LengthPercentage::parse(context, input)?;
|
||||||
} else {
|
Ok(generic::TransformOperation::Translate(sx, sy))
|
||||||
Ok(generic::TransformOperation::Translate(sx, Zero::zero()))
|
} else {
|
||||||
}
|
Ok(generic::TransformOperation::Translate(sx, Zero::zero()))
|
||||||
},
|
}
|
||||||
"translatex" => {
|
},
|
||||||
let tx = specified::LengthPercentage::parse(context, input)?;
|
"translatex" => {
|
||||||
Ok(generic::TransformOperation::TranslateX(tx))
|
let tx = specified::LengthPercentage::parse(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::TranslateX(tx))
|
||||||
"translatey" => {
|
},
|
||||||
let ty = specified::LengthPercentage::parse(context, input)?;
|
"translatey" => {
|
||||||
Ok(generic::TransformOperation::TranslateY(ty))
|
let ty = specified::LengthPercentage::parse(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::TranslateY(ty))
|
||||||
"translatez" => {
|
},
|
||||||
let tz = specified::Length::parse(context, input)?;
|
"translatez" => {
|
||||||
Ok(generic::TransformOperation::TranslateZ(tz))
|
let tz = specified::Length::parse(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::TranslateZ(tz))
|
||||||
"translate3d" => {
|
},
|
||||||
let tx = specified::LengthPercentage::parse(context, input)?;
|
"translate3d" => {
|
||||||
input.expect_comma()?;
|
let tx = specified::LengthPercentage::parse(context, input)?;
|
||||||
let ty = specified::LengthPercentage::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
input.expect_comma()?;
|
let ty = specified::LengthPercentage::parse(context, input)?;
|
||||||
let tz = specified::Length::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
Ok(generic::TransformOperation::Translate3D(tx, ty, tz))
|
let tz = specified::Length::parse(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::Translate3D(tx, ty, tz))
|
||||||
"scale" => {
|
},
|
||||||
let sx = Number::parse(context, input)?;
|
"scale" => {
|
||||||
if input.try(|input| input.expect_comma()).is_ok() {
|
let sx = Number::parse(context, input)?;
|
||||||
|
if input.try(|input| input.expect_comma()).is_ok() {
|
||||||
|
let sy = Number::parse(context, input)?;
|
||||||
|
Ok(generic::TransformOperation::Scale(sx, sy))
|
||||||
|
} else {
|
||||||
|
Ok(generic::TransformOperation::Scale(sx, sx))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scalex" => {
|
||||||
|
let sx = Number::parse(context, input)?;
|
||||||
|
Ok(generic::TransformOperation::ScaleX(sx))
|
||||||
|
},
|
||||||
|
"scaley" => {
|
||||||
let sy = Number::parse(context, input)?;
|
let sy = Number::parse(context, input)?;
|
||||||
Ok(generic::TransformOperation::Scale(sx, sy))
|
Ok(generic::TransformOperation::ScaleY(sy))
|
||||||
} else {
|
},
|
||||||
Ok(generic::TransformOperation::Scale(sx, sx))
|
"scalez" => {
|
||||||
}
|
let sz = Number::parse(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::ScaleZ(sz))
|
||||||
"scalex" => {
|
},
|
||||||
let sx = Number::parse(context, input)?;
|
"scale3d" => {
|
||||||
Ok(generic::TransformOperation::ScaleX(sx))
|
let sx = Number::parse(context, input)?;
|
||||||
},
|
input.expect_comma()?;
|
||||||
"scaley" => {
|
let sy = Number::parse(context, input)?;
|
||||||
let sy = Number::parse(context, input)?;
|
input.expect_comma()?;
|
||||||
Ok(generic::TransformOperation::ScaleY(sy))
|
let sz = Number::parse(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::Scale3D(sx, sy, sz))
|
||||||
"scalez" => {
|
},
|
||||||
let sz = Number::parse(context, input)?;
|
"rotate" => {
|
||||||
Ok(generic::TransformOperation::ScaleZ(sz))
|
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::Rotate(theta))
|
||||||
"scale3d" => {
|
},
|
||||||
let sx = Number::parse(context, input)?;
|
"rotatex" => {
|
||||||
input.expect_comma()?;
|
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
||||||
let sy = Number::parse(context, input)?;
|
Ok(generic::TransformOperation::RotateX(theta))
|
||||||
input.expect_comma()?;
|
},
|
||||||
let sz = Number::parse(context, input)?;
|
"rotatey" => {
|
||||||
Ok(generic::TransformOperation::Scale3D(sx, sy, sz))
|
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::RotateY(theta))
|
||||||
"rotate" => {
|
},
|
||||||
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
"rotatez" => {
|
||||||
Ok(generic::TransformOperation::Rotate(theta))
|
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::RotateZ(theta))
|
||||||
"rotatex" => {
|
},
|
||||||
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
"rotate3d" => {
|
||||||
Ok(generic::TransformOperation::RotateX(theta))
|
let ax = Number::parse(context, input)?;
|
||||||
},
|
input.expect_comma()?;
|
||||||
"rotatey" => {
|
let ay = Number::parse(context, input)?;
|
||||||
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
input.expect_comma()?;
|
||||||
Ok(generic::TransformOperation::RotateY(theta))
|
let az = Number::parse(context, input)?;
|
||||||
},
|
input.expect_comma()?;
|
||||||
"rotatez" => {
|
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
||||||
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
// TODO(gw): Check that the axis can be normalized.
|
||||||
Ok(generic::TransformOperation::RotateZ(theta))
|
Ok(generic::TransformOperation::Rotate3D(ax, ay, az, theta))
|
||||||
},
|
},
|
||||||
"rotate3d" => {
|
"skew" => {
|
||||||
let ax = Number::parse(context, input)?;
|
let ax = specified::Angle::parse_with_unitless(context, input)?;
|
||||||
input.expect_comma()?;
|
if input.try(|input| input.expect_comma()).is_ok() {
|
||||||
let ay = Number::parse(context, input)?;
|
let ay = specified::Angle::parse_with_unitless(context, input)?;
|
||||||
input.expect_comma()?;
|
Ok(generic::TransformOperation::Skew(ax, ay))
|
||||||
let az = Number::parse(context, input)?;
|
} else {
|
||||||
input.expect_comma()?;
|
Ok(generic::TransformOperation::Skew(ax, Zero::zero()))
|
||||||
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
}
|
||||||
// TODO(gw): Check that the axis can be normalized.
|
},
|
||||||
Ok(generic::TransformOperation::Rotate3D(ax, ay, az, theta))
|
"skewx" => {
|
||||||
},
|
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
||||||
"skew" => {
|
Ok(generic::TransformOperation::SkewX(theta))
|
||||||
let ax = specified::Angle::parse_with_unitless(context, input)?;
|
},
|
||||||
if input.try(|input| input.expect_comma()).is_ok() {
|
"skewy" => {
|
||||||
let ay = specified::Angle::parse_with_unitless(context, input)?;
|
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
||||||
Ok(generic::TransformOperation::Skew(ax, ay))
|
Ok(generic::TransformOperation::SkewY(theta))
|
||||||
} else {
|
},
|
||||||
Ok(generic::TransformOperation::Skew(ax, Zero::zero()))
|
"perspective" => {
|
||||||
}
|
let d = specified::Length::parse_non_negative(context, input)?;
|
||||||
},
|
Ok(generic::TransformOperation::Perspective(d))
|
||||||
"skewx" => {
|
},
|
||||||
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
_ => Err(()),
|
||||||
Ok(generic::TransformOperation::SkewX(theta))
|
};
|
||||||
},
|
result.map_err(|()| {
|
||||||
"skewy" => {
|
location.new_custom_error(StyleParseErrorKind::UnexpectedFunction(
|
||||||
let theta = specified::Angle::parse_with_unitless(context, input)?;
|
function.clone(),
|
||||||
Ok(generic::TransformOperation::SkewY(theta))
|
))
|
||||||
},
|
})
|
||||||
"perspective" => {
|
|
||||||
let d = specified::Length::parse_non_negative(context, input)?;
|
|
||||||
Ok(generic::TransformOperation::Perspective(d))
|
|
||||||
},
|
|
||||||
_ => Err(()),
|
|
||||||
};
|
|
||||||
result.map_err(|()| {
|
|
||||||
location
|
|
||||||
.new_custom_error(StyleParseErrorKind::UnexpectedFunction(function.clone()))
|
|
||||||
})
|
})
|
||||||
})
|
})?
|
||||||
})?.into()))
|
.into(),
|
||||||
|
))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
//! A thin atomically-reference-counted slice.
|
//! A thin atomically-reference-counted slice.
|
||||||
|
|
||||||
use servo_arc::ThinArc;
|
use servo_arc::ThinArc;
|
||||||
use std::{iter, mem};
|
|
||||||
use std::ops::Deref;
|
use std::ops::Deref;
|
||||||
use std::ptr::NonNull;
|
use std::ptr::NonNull;
|
||||||
|
use std::{iter, mem};
|
||||||
|
|
||||||
/// A canary that we stash in ArcSlices.
|
/// A canary that we stash in ArcSlices.
|
||||||
///
|
///
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue