mirror of
https://github.com/danbulant/cushy
synced 2026-06-24 09:02:31 +00:00
29 lines
788 B
Rust
29 lines
788 B
Rust
use manyhow::{manyhow, Result};
|
|
use proc_macro2::TokenStream;
|
|
use quote_use::quote_use as quote;
|
|
|
|
#[cfg(test)]
|
|
macro_rules! expansion_snapshot {
|
|
($name:ident $($tokens:tt)*) => {
|
|
#[test]
|
|
fn $name() {
|
|
expansion_snapshot!{$($tokens)*}
|
|
}
|
|
};
|
|
(#[derive($fn:expr)]$($tokens:tt)*) => {{
|
|
use insta::assert_snapshot;
|
|
use prettyplease::unparse;
|
|
use syn::{parse2, parse_quote};
|
|
let input = parse_quote!($($tokens)*);
|
|
let output = $fn(input).unwrap();
|
|
match &parse2(output.clone()) {
|
|
Ok(ok) => assert_snapshot!(unparse(ok)),
|
|
Err(_) => panic!("{output}"),
|
|
}
|
|
}};
|
|
}
|
|
|
|
mod animation;
|
|
|
|
#[manyhow(proc_macro_derive(LinearInterpolate))]
|
|
pub use animation::linear_interpolate;
|