123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #![doc = include_str!("../README.md")]
- #![doc(html_logo_url = "https://avatars.githubusercontent.com/u/79236386")]
- #![doc(html_favicon_url = "https://avatars.githubusercontent.com/u/79236386")]
- use proc_macro::TokenStream;
- use proc_macro2::TokenStream as TokenStream2;
- use quote::quote;
- #[proc_macro]
- pub fn server_only(input: TokenStream) -> TokenStream {
- if cfg!(any(feature = "ssr", feature = "liveview")) {
- let input = TokenStream2::from(input);
- quote! {
- #input
- }
- } else {
- quote! {
- {}
- }
- }
- .into()
- }
- #[proc_macro]
- pub fn client(input: TokenStream) -> TokenStream {
- if cfg!(any(feature = "desktop", feature = "web")) {
- let input = TokenStream2::from(input);
- quote! {
- #input
- }
- } else {
- quote! {
- {}
- }
- }
- .into()
- }
- #[proc_macro]
- pub fn web(input: TokenStream) -> TokenStream {
- if cfg!(feature = "web") {
- let input = TokenStream2::from(input);
- quote! {
- #input
- }
- } else {
- quote! {
- {}
- }
- }
- .into()
- }
- #[proc_macro]
- pub fn desktop(input: TokenStream) -> TokenStream {
- if cfg!(feature = "desktop") {
- let input = TokenStream2::from(input);
- quote! {
- #input
- }
- } else {
- quote! {
- {}
- }
- }
- .into()
- }
- #[proc_macro]
- pub fn mobile(input: TokenStream) -> TokenStream {
- if cfg!(feature = "mobile") {
- let input = TokenStream2::from(input);
- quote! {
- #input
- }
- } else {
- quote! {
- {}
- }
- }
- .into()
- }
- #[proc_macro]
- pub fn fullstack(input: TokenStream) -> TokenStream {
- if cfg!(feature = "fullstack") {
- let input = TokenStream2::from(input);
- quote! {
- #input
- }
- } else {
- quote! {
- {}
- }
- }
- .into()
- }
- #[proc_macro]
- pub fn static_generation(input: TokenStream) -> TokenStream {
- if cfg!(feature = "static-generation") {
- let input = TokenStream2::from(input);
- quote! {
- #input
- }
- } else {
- quote! {
- {}
- }
- }
- .into()
- }
- #[proc_macro]
- pub fn ssr(input: TokenStream) -> TokenStream {
- if cfg!(feature = "ssr") {
- let input = TokenStream2::from(input);
- quote! {
- #input
- }
- } else {
- quote! {
- {}
- }
- }
- .into()
- }
- #[proc_macro]
- pub fn liveview(input: TokenStream) -> TokenStream {
- if cfg!(feature = "liveview") {
- let input = TokenStream2::from(input);
- quote! {
- #input
- }
- } else {
- quote! {
- {}
- }
- }
- .into()
- }
|