#![forbid(unsafe_code)]
mod common;
use proc_macro::TokenStream;
use common::generate;
macro_rules! implement {
() => {};
( $name:ident ) => {
#[proc_macro]
pub fn $name(input: TokenStream) -> TokenStream {
generate(input, tupleops_generator::$name)
}
};
( $name:ident $($names:ident)+ ) => {
implement! { $name }
implement! { $($names)+ }
};
}
implement! {
tuple_all_ok
tuple_all_some
tuple_append
tuple_apply
tuple_concat_many
tuple_concat
tuple_length
tuple_map
tuple_option
tuple_prepend
tuple_ref_mut
tuple_ref
tuple_tuple
tuple_unappend
tuple_unprepend
}