maycoon_macros/lib.rs
1#![warn(missing_docs)]
2
3//! Macros for Maycoon => See `maycoon` crate.
4//!
5//! Contains procedural macros.
6
7mod state;
8
9/// Derives the [`State`](may_core::state::State) trait for the given struct.
10#[proc_macro_derive(State)]
11pub fn derive_state(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
12 proc_macro::TokenStream::from(state::derive_state(proc_macro2::TokenStream::from(input)))
13}
14
15/// Creates a new [`StateVal`](may_core::state::Val) from an expression.
16#[proc_macro]
17pub fn val(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
18 proc_macro::TokenStream::from(state::val(proc_macro2::TokenStream::from(input)))
19}