Skip to main content

extern_trait/
lib.rs

1#![doc = include_str!("../README.md")]
2
3mod decl;
4mod imp;
5
6use proc_macro::TokenStream;
7use syn::{Error, parse_macro_input};
8
9#[proc_macro_attribute]
10pub fn extern_trait(args: TokenStream, input: TokenStream) -> TokenStream {
11    if !args.is_empty() {
12        decl::expand(parse_macro_input!(args), parse_macro_input!(input))
13    } else {
14        imp::expand(parse_macro_input!(input))
15    }
16    .unwrap_or_else(Error::into_compile_error)
17    .into()
18}