#![cfg_attr(rustfmt, rustfmt::skip)] use super::*; mod const_; mod fn_; mod static_; mod type_; #[allow(unused_macros)] macro_rules! emit {( $($tt:tt)* ) => ( $($tt)* )} pub(in super) fn ffi_export ( args: TokenStream2, input: TokenStream2, ) -> Result { use ::proc_macro2::*; match parse2::(input)? { | Item::Struct(struct_) => type_::handle( parse2(args)?, &struct_.ident, &struct_.generics, &struct_, ), | Item::Enum(enum_) => type_::handle( parse2(args)?, &enum_.ident, &enum_.generics, &enum_, ), | Item::Fn(fn_) => fn_::handle(parse2(args)?, fn_), | Item::Const(const_) => const_::handle(parse2(args)?, const_), | Item::Static(static_) => static_::handle(parse2(args)?, static_), | _otherwise => bail!("unsupported item type"), } }