mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +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
|
@ -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 ),+
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue