mirror of
https://github.com/servo/servo.git
synced 2025-08-07 22:45:34 +01:00
Make it possible to build the style_traits crate with a stable compiler.
Testing this on CI to make sure we don’t regress it is blocked on #11806
This commit is contained in:
parent
b9b289c4be
commit
ea73c8efac
20 changed files with 145 additions and 89 deletions
|
@ -8,13 +8,16 @@ publish = false
|
|||
name = "style_traits"
|
||||
path = "lib.rs"
|
||||
|
||||
[features]
|
||||
heap_size = ["heapsize", "heapsize_plugin", "cssparser/heap_size", "euclid/plugins"]
|
||||
serde-serialization = ["serde", "serde_macros", "cssparser/serde-serialization", "euclid/plugins"]
|
||||
|
||||
[dependencies]
|
||||
util = {path = "../util"}
|
||||
plugins = {path = "../plugins"}
|
||||
cssparser = {version = "0.5.4", features = ["heap_size", "serde-serialization"]}
|
||||
euclid = {version = "0.6.4", features = ["plugins"]}
|
||||
heapsize = "0.3.0"
|
||||
heapsize_plugin = "0.1.2"
|
||||
cssparser = "0.5.4"
|
||||
euclid = "0.6.4"
|
||||
heapsize = {version = "0.3.0", optional = true}
|
||||
heapsize_plugin = {version = "0.1.2", optional = true}
|
||||
rustc-serialize = "0.3"
|
||||
serde = "0.7"
|
||||
serde_macros = "0.7"
|
||||
serde = {version = "0.7", optional = true}
|
||||
serde_macros = {version = "0.7", optional = true}
|
||||
|
|
|
@ -8,7 +8,9 @@ use cssparser::ToCss;
|
|||
|
||||
macro_rules! define_cursor {
|
||||
($( $css: expr => $variant: ident = $value: expr, )+) => {
|
||||
#[derive(Clone, Copy, Debug, Deserialize, Eq, HeapSizeOf, PartialEq, Serialize)]
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
#[cfg_attr(feature = "serde-serialization", derive(Deserialize, Serialize))]
|
||||
#[cfg_attr(feature = "heap_size", derive(HeapSizeOf))]
|
||||
#[repr(u8)]
|
||||
pub enum Cursor {
|
||||
$( $variant = $value ),+
|
||||
|
|
|
@ -8,19 +8,22 @@
|
|||
|
||||
#![crate_name = "style_traits"]
|
||||
#![crate_type = "rlib"]
|
||||
#![feature(custom_derive)]
|
||||
#![feature(plugin)]
|
||||
#![plugin(heapsize_plugin)]
|
||||
#![plugin(serde_macros)]
|
||||
#![plugin(plugins)]
|
||||
|
||||
#![deny(unsafe_code)]
|
||||
|
||||
#![cfg_attr(feature = "serde-serialization", feature(custom_derive))]
|
||||
#![cfg_attr(feature = "serde-serialization", feature(plugin))]
|
||||
#![cfg_attr(feature = "serde-serialization", plugin(serde_macros))]
|
||||
#![cfg_attr(feature = "heap_size", feature(custom_derive))]
|
||||
#![cfg_attr(feature = "heap_size", feature(plugin))]
|
||||
#![cfg_attr(feature = "heap_size", plugin(heapsize_plugin))]
|
||||
|
||||
#[macro_use]
|
||||
extern crate cssparser;
|
||||
extern crate euclid;
|
||||
extern crate heapsize;
|
||||
#[cfg(feature = "heap_size")] extern crate heapsize;
|
||||
extern crate rustc_serialize;
|
||||
extern crate serde;
|
||||
#[cfg(feature = "serde-serialization")] extern crate serde;
|
||||
extern crate util;
|
||||
|
||||
pub mod cursor;
|
||||
|
|
|
@ -5,12 +5,58 @@
|
|||
#[macro_export]
|
||||
macro_rules! define_css_keyword_enum {
|
||||
($name: ident: $( $css: expr => $variant: ident ),+,) => {
|
||||
define_css_keyword_enum!($name: $( $css => $variant ),+);
|
||||
__define_css_keyword_enum__add_serde!($name [ $( $css => $variant ),+ ]);
|
||||
};
|
||||
($name: ident: $( $css: expr => $variant: ident ),+) => {
|
||||
__define_css_keyword_enum__add_serde!($name [ $( $css => $variant ),+ ]);
|
||||
};
|
||||
}
|
||||
|
||||
#[cfg(feature = "serde-serialization")]
|
||||
#[macro_export]
|
||||
macro_rules! __define_css_keyword_enum__add_serde {
|
||||
($name: ident [ $( $css: expr => $variant: ident ),+ ]) => {
|
||||
__define_css_keyword_enum__add_heapsize! {
|
||||
$name [ Deserialize, Serialize ] [ $( $css => $variant ),+ ]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "serde-serialization"))]
|
||||
#[macro_export]
|
||||
macro_rules! __define_css_keyword_enum__add_serde {
|
||||
($name: ident [ $( $css: expr => $variant: ident ),+ ]) => {
|
||||
__define_css_keyword_enum__add_heapsize! {
|
||||
$name [] [ $( $css => $variant ),+ ]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#[cfg(feature = "heap_size")]
|
||||
#[macro_export]
|
||||
macro_rules! __define_css_keyword_enum__add_heapsize {
|
||||
($name: ident [ $( $derived_trait: ident),* ] [ $( $css: expr => $variant: ident ),+ ]) => {
|
||||
__define_css_keyword_enum__actual! {
|
||||
$name [ $( $derived_trait, )* HeapSizeOf ] [ $( $css => $variant ),+ ]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "heap_size"))]
|
||||
#[macro_export]
|
||||
macro_rules! __define_css_keyword_enum__add_heapsize {
|
||||
($name: ident [ $( $derived_trait: ident),* ] [ $( $css: expr => $variant: ident ),+ ]) => {
|
||||
__define_css_keyword_enum__actual! {
|
||||
$name [ $( $derived_trait ),* ] [ $( $css => $variant ),+ ]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! __define_css_keyword_enum__actual {
|
||||
($name: ident [ $( $derived_trait: ident),* ] [ $( $css: expr => $variant: ident ),+ ]) => {
|
||||
#[allow(non_camel_case_types)]
|
||||
#[derive(Clone, Eq, PartialEq, Copy, Hash, RustcEncodable, Debug, HeapSizeOf)]
|
||||
#[derive(Deserialize, Serialize)]
|
||||
#[derive(Clone, Eq, PartialEq, Copy, Hash, RustcEncodable, Debug $(, $derived_trait )* )]
|
||||
pub enum $name {
|
||||
$( $variant ),+
|
||||
}
|
||||
|
|
|
@ -20,7 +20,9 @@ define_css_keyword_enum!(Orientation:
|
|||
"landscape" => Landscape);
|
||||
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize, HeapSizeOf)]
|
||||
#[derive(Clone, Debug, PartialEq)]
|
||||
#[cfg_attr(feature = "serde-serialization", derive(Deserialize, Serialize))]
|
||||
#[cfg_attr(feature = "heap_size", derive(HeapSizeOf))]
|
||||
pub struct ViewportConstraints {
|
||||
pub size: TypedSize2D<ViewportPx, f32>,
|
||||
|
||||
|
@ -54,7 +56,8 @@ impl ToCss for ViewportConstraints {
|
|||
|
||||
/// Zoom is a number | percentage | auto
|
||||
/// See http://dev.w3.org/csswg/css-device-adapt/#descdef-viewport-zoom
|
||||
#[derive(Copy, Clone, Debug, HeapSizeOf, PartialEq)]
|
||||
#[derive(Copy, Clone, Debug, PartialEq)]
|
||||
#[cfg_attr(feature = "heap_size", derive(HeapSizeOf))]
|
||||
pub enum Zoom {
|
||||
Number(f32),
|
||||
Percentage(f32),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue