Blame servo/components/style_derive/lib.rs

Packit f0b94e
/* This Source Code Form is subject to the terms of the Mozilla Public
Packit f0b94e
 * License, v. 2.0. If a copy of the MPL was not distributed with this
Packit f0b94e
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
Packit f0b94e
Packit f0b94e
#![recursion_limit = "128"]
Packit f0b94e
Packit f0b94e
#[macro_use] extern crate darling;
Packit f0b94e
extern crate proc_macro;
Packit f0b94e
#[macro_use] extern crate quote;
Packit f0b94e
#[macro_use] extern crate syn;
Packit f0b94e
extern crate synstructure;
Packit f0b94e
Packit f0b94e
use proc_macro::TokenStream;
Packit f0b94e
Packit f0b94e
mod animate;
Packit f0b94e
mod cg;
Packit f0b94e
mod compute_squared_distance;
Packit f0b94e
mod parse;
Packit f0b94e
mod to_animated_value;
Packit f0b94e
mod to_animated_zero;
Packit f0b94e
mod to_computed_value;
Packit f0b94e
mod to_css;
Packit f0b94e
Packit f0b94e
#[proc_macro_derive(Animate, attributes(animate, animation))]
Packit f0b94e
pub fn derive_animate(stream: TokenStream) -> TokenStream {
Packit f0b94e
    let input = syn::parse(stream).unwrap();
Packit f0b94e
    animate::derive(input).into()
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
#[proc_macro_derive(ComputeSquaredDistance, attributes(animation, distance))]
Packit f0b94e
pub fn derive_compute_squared_distance(stream: TokenStream) -> TokenStream {
Packit f0b94e
    let input = syn::parse(stream).unwrap();
Packit f0b94e
    compute_squared_distance::derive(input).into()
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
#[proc_macro_derive(ToAnimatedValue)]
Packit f0b94e
pub fn derive_to_animated_value(stream: TokenStream) -> TokenStream {
Packit f0b94e
    let input = syn::parse(stream).unwrap();
Packit f0b94e
    to_animated_value::derive(input).into()
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
#[proc_macro_derive(Parse, attributes(css))]
Packit f0b94e
pub fn derive_parse(stream: TokenStream) -> TokenStream {
Packit f0b94e
    let input = syn::parse(stream).unwrap();
Packit f0b94e
    parse::derive(input).into()
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
#[proc_macro_derive(ToAnimatedZero, attributes(animation))]
Packit f0b94e
pub fn derive_to_animated_zero(stream: TokenStream) -> TokenStream {
Packit f0b94e
    let input = syn::parse(stream).unwrap();
Packit f0b94e
    to_animated_zero::derive(input).into()
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
#[proc_macro_derive(ToComputedValue, attributes(compute))]
Packit f0b94e
pub fn derive_to_computed_value(stream: TokenStream) -> TokenStream {
Packit f0b94e
    let input = syn::parse(stream).unwrap();
Packit f0b94e
    to_computed_value::derive(input).into()
Packit f0b94e
}
Packit f0b94e
Packit f0b94e
#[proc_macro_derive(ToCss, attributes(css))]
Packit f0b94e
pub fn derive_to_css(stream: TokenStream) -> TokenStream {
Packit f0b94e
    let input = syn::parse(stream).unwrap();
Packit f0b94e
    to_css::derive(input).into()
Packit f0b94e
}